sql raiserror指定参数

时间:2013-10-20 12:53:44

标签: sql sql-server parameters

当我阅读MSDN raiserror的示例时:

RAISERROR (N'This is message %s %d.', -- Message text.
           10, -- Severity,
           1, -- State,
           N'number', -- First argument.
           5); -- Second argument.
-- The message text returned is: This is message number 5.
GO

为什么使用%s的文档指定N'number'%d指定5 - 第二个参数

MSDN写得像这样:

  

例如,在下面的RAISERROR语句中,N'number'的第一个参数替换了%s的第一个转换规范;并且第二个参数5替换了%d的第二个转换规范。

我的问题是:如何解释?为什么不使用%a%b之类的其他内容。任何其他%+apha都可以替换它。 我只想得到一个有意义的理解。

1 个答案:

答案 0 :(得分:6)

这表示参数数据类型。

+--------------------+----------------------+
| Type specification |      Represents      |
+--------------------+----------------------+
| d or i             | Signed integer       |
| o                  | Unsigned octal       |
| s                  | String               |
| u                  | Unsigned integer     |
| x or X             | Unsigned hexadecimal |
+--------------------+----------------------+

N'number'是一个nvarchar字符串文字。得到%s说明符。文字5是一个带签名的指标,因此由%d表示。

至于这些说明符的原因。这在RAISERROR主题

中有记录
  

这些类型规范基于最初定义的规范   C标准库中的printf函数