将字符串与 UNIQUEIDENTIFIER 进行比较?
Comparing string with an UNIQUEIDENTIFIER?
我写了如下程序:
ALTER PROCEDURE [dbo].[GetLocationOfGuidPre]
@GuidArgument UNIQUEIDENTIFIER
.
.
.
SET @SQL_String = 'INSERT INTO #Guids(FoundGuid) SELECT ' + @ColName + ' FROM ' + @TableSchema + '.' + @TableName + ' WHERE ' + @ColName + ' = ' + @GuidArgument;
当我尝试执行它时,出现此错误:
The data types nvarchar and uniqueidentifier are incompatible in the add operator.
如何将字符串值与 UNIQUEIDENTIFIER
进行比较?
你试过把它作为参数传递吗?
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;
我想这个错误的原因很清楚:它说 + ' = ' + @GuidArgument;
不起作用,因为您尝试将唯一 ID 添加到 varchar...只需尝试转换您的 @GuidArgument
as varchar,它应该可以工作。
我写了如下程序:
ALTER PROCEDURE [dbo].[GetLocationOfGuidPre]
@GuidArgument UNIQUEIDENTIFIER
.
.
.
SET @SQL_String = 'INSERT INTO #Guids(FoundGuid) SELECT ' + @ColName + ' FROM ' + @TableSchema + '.' + @TableName + ' WHERE ' + @ColName + ' = ' + @GuidArgument;
当我尝试执行它时,出现此错误:
The data types nvarchar and uniqueidentifier are incompatible in the add operator.
如何将字符串值与 UNIQUEIDENTIFIER
进行比较?
你试过把它作为参数传递吗?
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;
我想这个错误的原因很清楚:它说 + ' = ' + @GuidArgument;
不起作用,因为您尝试将唯一 ID 添加到 varchar...只需尝试转换您的 @GuidArgument
as varchar,它应该可以工作。