我一直在尝试执行此程序:
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'。
答案 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