2011-07-19 13 views
6

私はエラーを取得する単一のラインでintnvarcharの行を印刷しようとします。ここに私のコードの全体があります。TSQLのPRINT文の変換問題

DECLARE @COUNT INT, @CONST INT 
SET @COUNT = 0 
SET @CONST = 12 

WHILE(@COUNT<12) 
BEGIN 
    SET @COUNT = @COUNT + 1 
    PRINT @COUNT + N' times ' + @CONST + N' is ' + @COUNT*@CONST 
END 

私が手にエラーがある:

メッセージ245、レベル16のデータ型intにnvarchar型の値が '時間' を変換する際に、状態1、行8 変換に失敗しました。

私はnvarcharを単独で見つけることができますが、それらを組み合わせるとこのエラーが発生します。私はそれらを不適切に組み合わせていますか?私はあなたが最初のnvarcharとしてあなたの変数をCASTなければならないのMicrosoft SQL Management Studioを

答えて

9

を使用してい

DECLARE @COUNT INT, @CONST INT 
SET @COUNT = 0 
SET @CONST = 12 

WHILE(@COUNT<12) 
BEGIN 
    SET @COUNT = @COUNT + 1 
    PRINT CAST(@COUNT as nvarchar) + N' times ' + CAST(@CONST as nvarchar) + N' is ' + CAST(@COUNT*@CONST as nvarchar) 
END 
+0

おかげで、ジョエル。良いキャッチ。 –

+0

ああ、私はキャスティングについて私の疑いがあった。ありがとうございました :] – Johannes