sql - 连接 RAISERROR 中的消息

标签 sql sql-server sql-server-2008

这里正确的语法是什么?

If (@timestamp < (Select PromoStartTimestamp From @promo))
    RAISERROR('Code not valid until ' + (Select PromoStartTimestamp From @promo)
              ,16
              ,1);

我已经尝试过:

If (@timestamp < (Select PromoStartTimestamp From @promo))
    RAISERROR(N'Code not valid until @starttimestamp'
              ,16
              ,1
              ,(Select PromoStartTimestamp From @promo));

最佳答案

您可以在 RAISERROR 中使用 %s 作为字符串替换参数:

DECLARE @PromoStartTimestamp DATETIME
DECLARE @PromoStartTimestampString VARCHAR(50)

SELECT @PromoStartTimestamp = PromoStartTimestamp From @promo
SELECT @PromoStartTimestampString = CAST(@PromoStartTimestamp AS VARCHAR)

If (@timestamp < @PromoStartTimestamp)
    RAISERROR(N'Code not valid until %s'
              ,16
              ,1
              ,@PromoStartTimestampString);

关于sql - 连接 RAISERROR 中的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10032914/

相关文章:

sql - SQL插入键-键-值数据

javascript - 正确插入表名

sql - 这可能与 SQL Server

c# SqlDecimal 在小数乘法中翻转符号

c# - 如何正确清理(或参数化)SQL 压缩插入语句

sql - 导入 - 在 SSMS 2014 中导出 AZURE 数据库

sql-server - 从 WebUI 外部访问 Sharepoint

sql - 将多个表格结果复制到 Excel

sql - 使用 ROW_NUMBER() OVER (PARTITION BY ...) 时出现问题

SQL,关于join的问题