SQL server - 存储过程 - 忽略异常

Ghi*_*ita 4 sql-server stored-procedures

我有一个存储过程:

INSERT INTO SitesCategories(SiteID, CategoryID) VALUES(@SITEID, @TempCId);
Run Code Online (Sandbox Code Playgroud)

这个插入可能会抛出异常,因为我对表有这个约束:

  ALTER TABLE dbo.SitesCategories
    ADD CONSTRAINT UniqueSiteCategPair
    UNIQUE (SiteId,CategoryID);
Run Code Online (Sandbox Code Playgroud)

我做了这个约束,这样我就不必检查何时插入双引号(@SITEID,@ TempCId).但是我不希望在存储过程中执行此操作时抛出SQl异常.如何在存储过程中"捕获"异常并继续执行过程中的操作?

小智 6

            BEGIN TRY
                INSERT INTO SitesCategories(SiteID, CategoryID) VALUES(@SITEID, @TempCId);
            END TRY
            BEGIN CATCH
            END CATCH;
Run Code Online (Sandbox Code Playgroud)