は、私はデータベースの値の文字列に参加しようとしていますが、この声明の中で:SQLサーバー+動的クエリ+ 'データ型nvarcharとbitがadd演算子で互換性がありません。'
SET @sql = ('select' + @var1 + '+' + convert(varchar,@var2) +
'from [VoucherType] where [DeletedBy] is null and [AutoID] = 1')
私は 演算子を追加してデータ型はnvarcharとビットは互換性がありません
というエラーを取得します。私のデータベースで
[IsBirthdayVoucher]
ある
@var2
はbit
タイプですが、私はすでにそれにconvert(varchar, @var2)
を適用しています。私が間違っていることを親切にアドバイスしてください。ありがとう。
SPROC:
declare @Str as varchar(max)
declare @var1 as varchar(30)=null
declare @var2 as varchar(30)=null
declare @var3 as varchar(30)=null
declare @var4 as varchar(30)=null
declare @var5 as varchar(30)=null
declare @sql as varchar(355)
set @Str = '[Code][IsBirthdayVoucher][IsReusable]VouT'
Set @var1= (select LEFT(@Str, CHARINDEX(']', @Str)))
set @Str = SUBSTRING(@Str, CHARINDEX(']', @Str) + 1, LEN(@Str))
Set @var2 =(select LEFT(@Str, CHARINDEX(']', @Str)))
set @Str = SUBSTRING(@Str, CHARINDEX(']', @Str) + 1, LEN(@Str))
Set @var3 =(select LEFT(@Str, CHARINDEX(']', @Str)))
set @Str = SUBSTRING(@Str, CHARINDEX(']', @Str) + 1, LEN(@Str))
SET @sql = ('select' + @var1 + '+' + convert(varchar,@var2) + 'from [VoucherType] where [DeletedBy] is null and [AutoID] = 1')
EXEC(@sql)
私はそこだと思うが、* * '」選択 ''それがあるべきselect''、すなわち' '後のスペースでなければなりません。 '['はデリミタとして機能しますが、防御的プログラミングのために... –
私はdownvoteに対してupvoted。私はなぜdownvoteがあったのかわかりませんが、これは合理的な質問のようです。 –