【发布时间】:2012-07-17 21:07:54
【问题描述】:
例如:
CREATE PROCEDURE dbo.MyProc
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
...
DECLARE @Id INT;
-- I don't want the following line to throw and abort processing.
-- I just want @Id to remain NULL. I can add a nested TRY/CATCH, but is there
-- a better way?
SET @Id=(SELECT Id FROM MyTable WHERE ...);
...
END TRY
BEGIN CATCH
...
END CATCH;
END;
更新:澄清一下,如果返回多行,我希望 @Id 保持 NULL。
【问题讨论】:
-
您希望该选择出现什么类型的错误?你能避免前 1 名的预期错误吗?如果没有匹配项,@ID 将保持为空。
-
如果返回多个 Id,我希望 @Id 保持 NULL,根据 Jose 的第二个答案...
标签: sql-server-2008 tsql sql-server-2008-r2