Jak wstawić do tabeli zawierającej tylko kolumnę TOŻSAMOŚCI?

14

Biorąc pod uwagę tabelę zawierającą tylko kolumnę TOŻSAMOŚCI, jak wstawić nowy wiersz? Próbowałem następujące:

INSERT INTO TABLE
(Syntax error)

INSERT INTO TABLE VALUES()
(Syntax error)

INSERT INTO TABLE (Id) VALUES()
(Syntax error)

Testuję coś i potrzebuję tylko kolumny TOŻSAMOŚĆ. To nie jest do produkcji. W przeciwnym razie taka tabela może być używana jako generator sekwencji, w którym nie są potrzebne żadne inne kolumny.

Apokatastaza
źródło

Odpowiedzi:

21

Z dokumentacji :

DEFAULT VALUES
Wymusza, aby nowy wiersz zawierał wartości domyślne zdefiniowane dla każdej kolumny.

Więc:

INSERT dbo.TABLE DEFAULT VALUES;

Dodatkowo:

  1. zawsze używaj prefiksu schematu
  2. zawsze zakończ wyrażenia średnikami
Aaron Bertrand
źródło
Co ciekawe, wydaje się być częścią SQL2003 (F222), ale nigdy wcześniej nie widziałem konstrukcji (INSERT INTO wydaje się być wymagany). Codziennie uczysz się czegoś nowego :-)
Lennart
3

Innym sposobem byłoby użycie IDENTITY_INSERT. W ten sposób możesz ręcznie zdefiniować, które wartości chcesz wprowadzić.

SET IDENTITY_INSERT TABLE ON ;

INSERT INTO TABLE (ID) VALUES (1), (2) ;

SET IDENTITY_INSERT TABLE OFF ;
Kahn
źródło
0

oto rozwiązanie

Insert into TableName Default values;
select Scope_identity();
Muhammad Jawad
źródło