当前位置: 代码迷 >> Sql Server >> 在exec(@sql)实施时报错.@sql写有go和create
  详细解决方案

在exec(@sql)实施时报错.@sql写有go和create

热度:74   发布时间:2016-04-27 11:47:22.0
在exec(@sql)执行时报错.@sql写有go和create
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)
  相关解决方案