0

我正在发送我在 fom c# 中创建的字符串,并将其发送到程序在那里我将其用作 nvarchar(1000),然后在 SQL IN 运算符中使用它,但我收到错误“从字符转换时转换失败字符串到唯一标识符。”

我正在发送这个

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

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

SELECT * FROM MemberJobDetails WHERE GradeID IN (@a) 

这里 GradeID 是唯一标识符

4

2 回答 2

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+',%'
于 2013-10-11T11:09:41.583 回答
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
于 2013-10-11T11:06:11.540 回答