如何在throw语句中插入变量的值?

时间:2016-03-11 04:29:09

标签: sql-server

这是我的代码:

CREATE PROCEDURE [dbo].[get_test_status]
    @TestStatusId INT OUTPUT,
    @UserTestId INT,
    @UserId     INT
AS
    SELECT * FROM UserTest WHERE  UserTestId = @UserTestId;
    IF (@@ROWCOUNT != 1)
        THROW 50004,'User Test' + @UserTestId + 'Could not find an existing test to start',1

我在throw行中遇到语法错误。有人可以给我一些建议吗?

2 个答案:

答案 0 :(得分:1)

尝试声明一个nvarchar变量,然后存储你想要的文本并使用它。

Eg : Declare @msg nvarchar(200)
set @msg = 'User Test' + @UserTestId + 'Could not find an existing test to start'
THROW 50004,@msg,1

答案 1 :(得分:1)

来自THROW

THROW语句不允许在message参数中使用替换参数,message参数不接受printf样式格式化。

See Example C from the link.