0

私はフォームC#で作成した文字列を送信しており、それを手順に送信しています。そこでnvarchar(1000)として使用し、SQL IN演算子で使用していますが、「文字から変換するときに変換に失敗しました」というエラーが表示されますstring を uniqueidentifier に変換します。」

これを送ります

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

2 つのアプローチ

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 に答える