2012-06-20 4 views
1

SQL Server 200x/2012의 아래의 2 CREATE TABLE 문간에 차이가 있습니까? 두 개의 다른 테이블에서이 스크립트를 생성했습니다. 하나는 키 이름 (PK_Table1)이 정의되어 있고, 다른 하나는 임의로 생성 된 숫자 (PK_Table1_1084F446)가 있습니다.기본 키 이름은 필수 입력란입니까?

CREATE TABLE [dbo].[Table1](
    [ID] [uniqueidentifier] NOT NULL, 
    <<Other Column declaration here>> 
PRIMARY KEY CLUSTERED 
(
    [ID] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 
GO 
Few more non-clustered indexes declaration here 


CREATE TABLE [dbo].[Table1](
    [ID] [uniqueidentifier] NOT NULL, 
    <<Other Column declaration here>> 
CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED 
(
    [ID] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 
GO 
Few more non-clustered indexes declaration here 
+1

유일한 차이점은 두 번째 작성 테이블에서 제한 조건의 이름을 지정했기 때문입니다. – sa3m

답변

1

그것은 같은 방식으로 작동하지만, 자연의 이름이 더 편리 :

1)) 재치있는 이름을 준 경우 쉽게 (참조 할 수 제약 조건을 변경할 때;

2) 제약 조건으로 인해 쿼리가 실패한 경우이 제약 조건의 이름이 표시되므로 오류의 원인을 쉽게 알 수 있습니다 (적절한 이름을 지정하는 경우).