私は、テーブルから参照コードを取り出し、特定の条件を満たす場合はコードを1つずつインクリメントするカーソルを持っています。参照は英数字であるため、nvarcharとして宣言されています。CASTを使用しても変換エラーが発生しましたか?
@RefNo = 'v1'
は、V2にこれを変更することを意図していることを前提とし、物事をシンプルに保つために:
DECLARE @versionNo INT
DECLARE @RefNo nvarchar(50)
DECLARE @NewVersionNo INT
DECLARE @NewRefNo nvarchar(50)
set @VersionNo = Right(@RefNo, 1)
set @NewVersionNo = @versionNo + 1
set @NewRefNo = Left(@RefNo, Len(@RefNo - 1)) + cast(@NewVersionNo as nvarchar)
print @NewRefNo
最終ラインはなぜこれが起こっている私を得る限りエラーConversion failed when converting the nvarchar value 'v1' to data type int.
で失敗 - 「+」演算子はnvarcharとint値を同時に扱うことはできませんが、@ NewVersionNoのnvarcharへのキャストはそれを回避していると思います。
また、2008R2を使用しているため、CONCAT機能を使用できません。
varcharの長さを指定する必要があります。それはデフォルトの長さ30を使用します。しかし、それがパラメータだった場合、デフォルトは1になります。あなた自身を面倒なく保存してください。 –