如何更改列的数据类型,然后在SQL Server的同一脚本中对该新类型执行操作?

时间:2009-07-31 12:33:36

标签: sql sql-server sql-server-2005

我的脚本中包含Alter Column语句,正在将数据类型从Bigint更改为Varchar。紧接着,我需要在该列上致电Substring()

不幸的是,SQL Server的语法检查程序不允许我这样做。我需要添加一个'GO'语句来拆分命令。这个问题是,我还需要在我的脚本中包含IF - 条件,添加GO语句会破坏IF块,因此它不再存在于同一范围内打破了我的代码的逻辑。

有没有办法做到这一点:

Alter Table MyTable
Alter Column MyColumn varchar(25)

GO

Update MyTable
Set MyColumn = Substring(MyColumn, 0, 5)

不使用GO一词?

1 个答案:

答案 0 :(得分:2)

像这样:

Alter Table MyTable
Alter Column MyColumn varchar(25)

EXEC('Update MyTable
Set MyColumn = Substring(MyColumn, 0, 5)');