declare @sql varchar(1000) =''
select @sql=
'if(object_id(''t1'')is not null)
drop table t1
go
create table t1
(id int)
go '
print @sql
select @sql
exec (@sql)
------解决方案--------------------
在正式执行时,print 和select去掉,以免影响。另外,如果取消go都不行的话,那你就尝试分开两个动态字符串来执行吧。我很少开发了,但是听说动态sql里面还有begin /end里面不能用go,不知道是不是。
------解决方案--------------------
把go直接去掉就好了。exec(@sql)中的参数只能包含sql语句,而go不属于sql语法,只是批处理提交的一个命令而已。
------解决方案--------------------
go 应该放在exec之前,在调用这个方法之前就应该批处理。
------解决方案--------------------
- SQL code
declare @sql varchar(1000) =''select @sql='if(object_id(''t1'')is not null)drop table t1create table t1(id int) ' print @sqlselect @sqlexec (@sql)