我收到错误“从字符串转换为uniqueidentifier时转换失败。”

时间:2013-10-11 10:46:34

标签: sql-server

我正在发送我在fom c#中发出的字符串并且我将它发送到一个处理我在那里使用它作为nvarchar(1000)然后在SQL IN运算符中使用它但是我收到错误“转换时转换失败从字符串到uniqueidentifier。“

我发送此

SET @a='E1554084-7B8F-4F04-B6B3-4892E4C5687F','4B555046-152B-411D-A611-D9D507906259' 

在字符串构建器中,我想使用逗号作为运算符而不是sqlserver

中的字符串
SELECT * FROM MemberJobDetails WHERE GradeID IN (@a) 

此处GradeID是唯一标识符

2 个答案:

答案 0 :(得分:0)

Following query may help you

DECLARE @UID NVARCHAR(2000)
SET @UID='2A66057D-F4E5-4E2B-B2F1-38C51A96D385'
DECLARE @nUID AS UNIQUEIDENTIFIER
SET @nUID = CAST(@UID AS UNIQUEIDENTIFIER)
PRINT @nUID

答案 1 :(得分:0)

两种方法

1动态SQL

declare @a varchar(1000)
SET @a='E1554084-7B8F-4F04-B6B3-4892E4C5687F,4B555046-152B-411D-A611-D9D507906259' 

set @a=''''+replace(@a,',',''',''')+''''

declare @sql varchar(8000)
set @sql='SELECT * FROM MemberJobDetails WHERE GradeID IN ('+@a+')'
exec(@sql)

2静态SQL

SELECT * FROM MemberJobDetails WHERE ','+@a+',' like '%,'+GradeID+',%'