SQL动态过程

时间:2016-07-12 21:52:15

标签: sql-server stored-procedures dynamic dynamic-sql

Code Error

我一直在尝试执行此程序:

go
declare @idnvarchar(max)
declare @dia nvarchar(max)
set @id='E4211537-09CD-45F2-BB5F-F20F642DE676'
set @dia='ObjectSignal_2016_05_23 '
set @sqlstring = 'Select Code From ' +@dia+ 'WHERE IdObject='+@id+''
EXEC sp_executesql @sqlstring
go

但我收到的问题如下图所示。

  

男装。 102,Nivel 15,Estado 1,Linea 1

     

Sintaxis不正确的cerca de' CD'。

1 个答案:

答案 0 :(得分:0)

将@sqlstring更改为以下(您需要将字符串括在单引号中)并在WHERE之前添加空格

set @sqlstring = 'Select Code From ' + @dia + ' WHERE idObject = ''' + @id + ''''

print @sqlstring
在执行

之前,

还会打印出字符串供您自己验证

最好的方法是使用sp_executesql和参数

set @sqlstring = 'Select Code From ' + quotename(@dia) + ' WHERE idObject = @id' 
print @sqlstring
exec sp_executesql @sqlstring, N'@id nvarchar(max)', @id