当我阅读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
都可以替换它。
我只想得到一个有意义的理解。
答案 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函数