动态sql中的GUID(GUID in dynamic sql)
我正在尝试在动态SQL中使用uniqueidentifier类型的列。
我有一个表X,具有类型为guid的列ID。
如果我做:
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'附近给出语法错误,因为语法错误。
有什么建议吗?
I am trying to use a column of type uniqueidentifier in Dynamic SQL.
I have a table X, with column ID of type guid.
If I do:
declare @primarykeyvalue varchar(50) set @primarykeyvalue = '648D2DD7-0EB1-4E29-A996-69456753C460' select * from X where ID = @primarykeyvalueThis works, but if I try to do the same in dynamic SQL like:
DECLARE @sql NVARCHAR(1000) SET @sql = 'select * from X where ID = ' + @primarykeyvalue EXECUTE(@sql)This gives an syntax error as Incorrect syntax near 'D2DD7'.
Any suggestions please?
最满意答案
您需要在您的GUID值附近引用额外的引号:
DECLARE @sql NVARCHAR(1000) SET @sql = 'select * from X where ID = ''' + @primarykeyvalue + '''' EXECUTE(@sql)You need extra quotes around your GUID value:
DECLARE @sql NVARCHAR(1000) SET @sql = 'select * from X where ID = ''' + @primarykeyvalue + '''' EXECUTE(@sql)更多推荐
发布评论