VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: 121222

数据库字段类型转换问题

[复制链接]

0

主题

29

帖子

19.00

积分

新手上路

Rank: 1

积分
19.00
发表于 2020-11-27 16:45:01 | 显示全部楼层
在查询管理器里面进行alter table 操作么。企业管理器 - -b GUI图形化的东西效率没有命令行的高啊。虽然说操作简便
回复

使用道具 举报

0

主题

34

帖子

17.00

积分

新手上路

Rank: 1

积分
17.00
发表于 2020-11-27 20:30:01 | 显示全部楼层
ALTER TABLE
通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。
ALTER COLUMN

指定要更改给定列。如果兼容级别是 65 或小于 65,将不允许使用 ALTER COLUMN。有关更多信息,请参见 sp_dbcmptlevel。

要更改的列不能是:

数据类型为 text、image、ntext 或 timestamp 的列。

联机帮助上写的,也就是说Alter Table的方式不能更改text、image、ntext 或 timestamp的列
回复

使用道具 举报

0

主题

34

帖子

17.00

积分

新手上路

Rank: 1

积分
17.00
发表于 2020-11-27 21:00:01 | 显示全部楼层
可以这样来修改,这是一个例子,将表table1中的ee字段由ntext改为text。
参考如下:

BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
CREATE TABLE dbo.Tmp_Table1
        (
        ee text NULL
        )  ON [PRIMARY]
         TEXTIMAGE_ON [PRIMARY]
GO
IF EXISTS(SELECT * FROM dbo.Table1)
         EXEC('INSERT INTO dbo.Tmp_Table1 (ee)
                SELECT ee FROM dbo.Table1 (HOLDLOCK TABLOCKX)')
GO
DROP TABLE dbo.Table1
GO
EXECUTE sp_rename N'dbo.Tmp_Table1', N'Table1', 'OBJECT'
GO
COMMIT
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表