如何更改列';,然后在SQL Server中的同一脚本中对该新类型执行操作?
我有一个带有如何更改列';,然后在SQL Server中的同一脚本中对该新类型执行操作?,sql,sql-server,sql-server-2005,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 Upda
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”?如下:
Alter Table MyTable
Alter Column MyColumn varchar(25)
EXEC('Update MyTable
Set MyColumn = Substring(MyColumn, 0, 5)');
你确定你需要改变那张桌子吗?为什么不把BigInt转换成Varchar,然后在上面使用子字符串呢?我肯定需要修改这个表。我没办法摆脱这一切。