我正在发送我在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是唯一标识符
答案 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+',%'