0
第二個ALTER TABLE
CHECK CONSTRAINT
是否在IF (NOT) EXISTS
中,以便該腳本可以重複執行?SQL檢查是否運行了「CHECK CONSTRAINT」?
IF NOT EXISTS (
SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
WHERE CONSTRAINT_NAME ='fk_RoleId'
)
BEGIN
ALTER TABLE [dbo].[webpages_UsersInRoles] WITH CHECK ADD CONSTRAINT [fk_RoleId] FOREIGN KEY([RoleId])
REFERENCES [dbo].[webpages_Roles] ([RoleId])
END
GO
-- Put me in an IF ...() BEGIN ... END?
ALTER TABLE [dbo].[webpages_UsersInRoles] CHECK CONSTRAINT [fk_RoleId]
GO
它不會引起任何錯誤,但如果它應該是在IF
條款,你怎麼測試,如果它已經跑了(什麼可以如果包含)?
第二步是多餘的。請參閱http://stackoverflow.com/questions/529941/whats-the-difference-between-with-check-add-constraint-followed-by-check-constr –