Cam*_*llo 13 t-sql sql-server raiserror
在以前的版本中,我们在t-sql中引发了错误:
RAISERROR 50000 'My Error Message'
Run Code Online (Sandbox Code Playgroud)
在最新的SQL Server中,此语法已停止使用,并替换为RaiseError()语法.
我想有一个提出错误的通用方法,到目前为止我能得到的最好的方法是:
sp_addmessage @msgnum = 50001,
@severity = 10,
@msgtext = N'My Error Message', @replace = 'REPLACE';
RAISERROR (50001, 10, 1, 'This error message is not displayed')
Run Code Online (Sandbox Code Playgroud)
但我不能为每条消息创建一个带有sp_addmessage的错误消息,因为有1000个消息.
使用自定义消息引发消息的更好方法是什么?
Cam*_*llo 19
这似乎有效:
RAISERROR('My Error Message',0,1)
Run Code Online (Sandbox Code Playgroud)
Mar*_*rkD 18
实际上,自SQL Server 2012以来RAISERROR已经被弃用了THROW.请访问此处获取更多信息.其中一个更有趣的方面是Rais e rror而不是Rais eE rror导致它在某些圈子中被称为"提升ror".
BOL的样本:
USE tempdb;
GO
CREATE TABLE dbo.TestRethrow
( ID INT PRIMARY KEY
);
BEGIN TRY
INSERT dbo.TestRethrow(ID) VALUES(1);
-- Force error 2627, Violation of PRIMARY KEY constraint to be raised.
INSERT dbo.TestRethrow(ID) VALUES(1);
END TRY
BEGIN CATCH
PRINT 'In catch block.';
THROW;
END CATCH;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32514 次 |
| 最近记录: |