use*_*574 20 sql sql-server try-catch throw sql-server-2008-r2
它说,SQL Server 2008 R2 Management Studio无法识别下面的例子
Throw附近的语法错误
我试图在这里抛出一个错误,所以当有人插入两次相同的值时,我可以在我的网站上处理它.
Begin Try
insert into BusinessID (BusinessID) values (@ID)
insert into BusinessID (BusinessID) values (@ID)
End Try
Begin Catch
Print 'PK already exist'
THROW
End Catch
Run Code Online (Sandbox Code Playgroud)
Nen*_*vic 42
THROW声明在SQL Server 2012中引入
http://msdn.microsoft.com/en-us/library/ee677615.aspx
你可以RAISERROR改用.
http://msdn.microsoft.com/en-us/library/483588bd-021b-4eae-b4ee-216268003e79(v=sql.105)
BEGIN CATCH
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;
SELECT
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
RAISERROR (@ErrorMessage, -- Message text.
@ErrorSeverity, -- Severity.
@ErrorState -- State.
);
END CATCH;
Run Code Online (Sandbox Code Playgroud)