2013-10-02 3 views
0

두 번째 ALTER TABLECHECK CONSTRAINTIF (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 절에 있어야 경우가 실행 된 경우, 어떻게합니다 (경우에 포함 할 수있는) 테스트합니까? 당신은 (그것을 필요는 없습니다) 수표를 원하는한다면

+0

두 번째 단계는 중복됩니다. http://stackoverflow.com/questions/529941/whats-the-difference-between-with-check-add-constraint-followed-by-check-constr을 참조하십시오. –

답변

1

, sys.foreign_keys는 열 is_not_trusted 있습니다

FOREIGN KEY 제약 조건은 시스템에 의해 검증되지 않았습니다.