首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-08-26 
在exec(@sql)执行时报错.@sql写有go和createdeclare @sql varchar(1000) select@sqlif(object_id(t

在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) 

热点排行