Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改列';,然后在SQL Server中的同一脚本中对该新类型执行操作?_Sql_Sql Server_Sql Server 2005 - Fatal编程技术网

如何更改列';,然后在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,然后在上面使用子字符串呢?我肯定需要修改这个表。我没办法摆脱这一切。