例如:有没有办法让SELECT失败不会抛出TRY/CATCH?
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将保持为空。 – 2012-07-18 18:37:32
我希望@Id保持NULL,如果有多个ID返回,按照Jose的第二个答案... – 2012-07-18 18:49:58