2011-05-06 73 views

回答

14
CREATE TABLE Person(
P_Id int NOT NULL IDENTITY(1,1) PRIMARY KEY, 
Name varchar(255)) 

,應明確指出NAMENULLNOT NULL所以你是不依賴於current connection settings that happen to be in effect

+0

'AUTO_INCREMENT'有問題。用'IDENTITY(1,1)'代替它,它完美運作。謝謝! – 2015-08-03 14:02:44

0
create table Person 
(
    PersonId int identity(1,1) 
     constraint PK_Person primary key, 
    Name varchar(255) not null 
) 

一些評論:

  1. 爲標識列作爲標識列指定not null不需要它不能爲空。 ANSI_NULL_DFLT_ON選項不會影響標識列的'可空性'。
  2. 另一方面,爲名稱列指定'not null/null'很重要,因爲它將受到ANSI_NULL_DFLT_ON值的影響。
  3. 明確指定約束名稱總是一個好主意。因爲如果你不這樣做,會產生名稱約束名稱。如果您稍後需要刪除約束,則必須查找自動生成的名稱。
相關問題