Ben veritabanı değerlerinin bir dize katılmaya çalışıyorum ama bu açıklamada:SQL sunucusu + dinamik sorgu + 'Nvarchar ve bit veri türleri, eklenti operatöründe uyumsuz.'
SET @sql = ('select' + @var1 + '+' + convert(varchar,@var2) +
'from [VoucherType] where [DeletedBy] is null and [AutoID] = 1')
Ben operatörü eklemek veri türleri nvarchar ve bit uyumsuz
söyleyerek bir hata alıyorum. Benim veritabanında
[IsBirthdayVoucher]
olduğunu
@var2
bir bit
türüdür ama zaten üzerinde convert(varchar, @var2)
uyguladık. Lütfen yanlış yaptığım şeyi önerin. Teşekkürler.
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)
Orada düşünüyorum * * '' select '' olması gerektiği select'', yani' 'sonra bir boşluk olmalıdır. '[' Bir sınırlayıcı olarak hareket edecek, ancak savunma programlarının çıkarları doğrultusunda ... –
İndirgemeye karşı bıktım. Neden bir downvote olduğunu anlamıyorum, bu makul bir soru gibi görünüyor. –