SQL server + requête dynamique + " Les types de données nvarchar et peu sont incompatibles dans l'ajout de l'opérateur.'
J'essaie de joindre une chaîne de valeurs de base de données, mais dans cette déclaration:
SET @sql = ('select' + @var1 + '+' + convert(varchar,@var2) +
'from [VoucherType] where [DeletedBy] is null and [AutoID] = 1')
Je reçois un message d'erreur indiquant
Les types de données nvarchar et peu sont incompatibles dans l'ajouter
de l'opérateur.
@var2
qui est [IsBirthdayVoucher]
dans ma base de données est un bit
type, mais j'ai déjà appliqué convert(varchar, @var2)
sur elle. Merci des conseils que je fais de mal. Merci.
La procédure stockée:
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)
Je pense qu'il y a doit avoir un espace après
Je upvoted contre le downvote. Je ne comprends pas pourquoi il y avait un downvote, cela semble être une question tout à fait raisonnable.
'select'
, c'est à dire qu'il doit être 'select '
. Le [
agira comme séparateur, mais dans l'intérêt de la défense de la programmation...Je upvoted contre le downvote. Je ne comprends pas pourquoi il y avait un downvote, cela semble être une question tout à fait raisonnable.
OriginalL'auteur k80sg | 2011-12-10
Vous devez vous connecter pour publier un commentaire.
Vous n'êtes pas convertir
[IsBirthdayVoucher]
àVARCHAR
, vous êtes à la conversion de@var2
àVARCHAR
.Essayer:
OriginalL'auteur ta.speot.is
essayez ceci:
OriginalL'auteur Vahid Beyranvand