我正在尝试在动态 SQL 中使用 uniqueidentifier 类型的列。
我有一个表 X,列 ID 类型为 guid。
如果我做:
declare @primarykeyvalue varchar(50)
set @primarykeyvalue = '648D2DD7-0EB1-4E29-A996-69456753C460'
select * from X where ID = @primarykeyvalue
这可行,但如果我尝试在动态 SQL 中执行相同的操作,例如:
DECLARE @sql NVARCHAR(1000)
SET @sql = 'select * from X where ID = ' + @primarykeyvalue
EXECUTE(@sql)
这会导致语法错误,因为“D2DD7”附近的语法不正确。
请问有什么建议吗?