【发布时间】:2015-12-03 03:28:45
【问题描述】:
这是一个非常简单的代码,但它无法捕获错误。
或者如何捕捉错误?
谢谢。
BEGIN TRY
ALTER TABLE [dbo].[my_table_name]
ADD PRIMARY KEY ([id]);
END TRY
BEGIN CATCH
PRINT 'Primary Key already exists. '
END CATCH
【问题讨论】:
-
您可能会发现这很有用:sqlusa.com/articles2008/trycatch。
-
也许你可以验证是否已经存在...如果不退出(SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE CONSTRAINT_TYPE = 'PRIMARY' ....blah
-
如果不存在(SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE CONSTRAINT_TYPE = 'PRIMARY KEY' AND TABLE_NAME = 'my_table_name')ALTER TABLE [dbo].[my_table_name] ADD PRIMARY KEY ([id]);
-
谢谢,它也有效。
-
很好“大多数语言都有现有的控制结构,旨在解决您的问题而不使用异常”不要陷入反模式
标签: sql sql-server sql-server-2012