TSQL PRINT语句转换问题

时间:2011-07-19 02:30:27

标签: tsql

当我尝试在一行中打印intnvarchar的行时,我收到错误消息。这是我的全部代码。

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

我得到的错误是:

  

Msg 245,Level 16,State 1,Line 8   将nvarchar值'times'转换为数据类型int时,转换失败。

我可以在nvarchar打印'int'只是自己找,但是当我把它们组合起来时,我得到了这个错误。我是不正确地将它们组合在一起的?

我正在使用Microsoft SQL Management Studio

1 个答案:

答案 0 :(得分:11)

您应该首先将CAST变量设为nvarchar:

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