0

スクリプトを繰り返し実行できるように、2 番目ALTER TABLE CHECK CONSTRAINTを にする必要がありますか?IF (NOT) EXISTS

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節に含める必要がある場合、実行されたかどうかをどのようにテストしますか (if には何が含まれますか)?

4

1 に答える 1

1

チェックが必要な場合 (必須ではありません)、次sys.foreign_keysの列がありますis_not_trusted

FOREIGN KEY 制約がシステムによって検証されていません。

于 2013-10-02T13:13:36.970 に答える