Mam istniejącą tabelę, którą zaraz zniszczę, ponieważ nie utworzyłem jej z ID
kolumną ustawioną jako kolumna Tożsamość tabeli.
Używając SQL Server Management Studio , napisałem skrypt „Utwórz do ...” istniejącej tabeli i otrzymałem to:
CREATE TABLE [dbo].[History](
[ID] [int] NOT NULL,
[RequestID] [int] NOT NULL,
[EmployeeID] [varchar](50) NOT NULL,
[DateStamp] [datetime] NOT NULL,
CONSTRAINT [PK_History] 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]
Moje pytanie brzmi, jak zmodyfikować to SQL
, aby moja tabela wynikowa miała ID
kolumnę ustawioną jako Tożsamość ?
sql
sql-server
tsql
jp2code
źródło
źródło
Odpowiedzi:
źródło
PK_History
wartości naID
ani nic?Na to już udzielono odpowiedzi, ale myślę, że najprostsza składnia to:
Bardziej skomplikowany indeks ograniczeń jest przydatny, gdy faktycznie chcesz zmienić opcje.
Nawiasem mówiąc, wolę nazwać taką kolumnę HistoryId, aby pasowała do nazw kolumn w relacjach klucza obcego.
źródło
ID int constraint PK_History primary key identity(1,1)
Wierzę.NOT NULL
Jest zbędny.oczywiście, ponieważ tworzysz tabelę w SQL Server Management Studio, możesz użyć projektanta tabel do ustawienia Specyfikacji tożsamości.
źródło
Unikalny klucz pozwala na maksymalnie 2 wartości NULL. Wyjaśnienie:
Jeśli spróbujesz wstawić te same wartości, co poniżej:
Za każdym razem, gdy pojawi się błąd, taki jak:
źródło
ID
kolumnę wyjątkową , a nieName
kolumną. Dlaczego dodałeś unikalne ograniczenie doName
kolumny? Jakie korzyści daje ci to przyteppp
stole?