我写了以下程序:
ALTER PROCEDURE [dbo].[GetLocationOfGuidPre]
@GuidArgument UNIQUEIDENTIFIER
.
.
.
SET @SQL_String = 'INSERT INTO #Guids(FoundGuid) SELECT ' + @ColName + ' FROM ' + @TableSchema + '.' + @TableName + ' WHERE ' + @ColName + ' = ' + @GuidArgument;当我尝试执行它时,我会得到以下错误:
在add运算符中,数据类型nvarchar和unique标识符是不兼容的。
如何将字符串值与UNIQUEIDENTIFIER进行比较
发布于 2018-08-15 13:10:38
你试过把它作为参数传递吗?
SET @SQL_String = 'INSERT INTO #Guids(FoundGuid) SELECT ' + @ColName + ' FROM ' + @TableSchema + '.' + @TableName + ' WHERE ' + @ColName + ' = @GuidArgument';
EXEC sp_executesql @SQL_string,
N'@GuidArgument UNIQUEIDENTIFIER',
@GuidArgument = @GuidArgument;发布于 2018-08-15 13:13:04
我想这个错误的原因很清楚:它说+ ' = ' + @GuidArgument;不工作,因为您试图向varchar添加一个唯一的ID .只要尝试将您的@GuidArgument转换为varchar,它就会工作。
https://stackoverflow.com/questions/51859344
复制相似问题