(Pojawiłem się z tym pytaniem, próbując odpowiedzieć na to drugie )
Rozważmy następującą tabelę MS-SQL, zwaną GroupTable:
Identyfikator grupy ------- 1 2 3
gdzie GroupID to klucz podstawowy i kolumna Identity.
Jak wstawić nowy wiersz do tabeli (a tym samym wygenerować nowy identyfikator) bez używania IDENTITY_INSERT ON?
Zauważ, że to:
INSERT INTO GroupTable() Values ()
... nie zadziała.
edycja: mówimy tutaj o SQL 2005 lub SQL 2008.
sql
sql-server
identity
codeulike
źródło
źródło
merge
operatorem. Np.merge into TableName using (values (1), (2), (3)) s(n) on 1=0 when not matched then insert default values;
Proszę bardzo:
INSERT INTO GroupTable DEFAULT VALUES
źródło
Jednocześnie można wstawić więcej niż jeden wiersz.
Na przykład, aby wstawić 30 wierszy. WSTAW DO TABELI WARTOŚCI DOMYŚLNYCH DO 30
Spowoduje to wstawienie 30 wierszy, każdorazowo zwiększając kolumnę tożsamości.
źródło
Czy możesz spróbować użyć sekwencji lub czegoś podobnego? Tam, gdzie wybierasz z sekwencji, a otrzymasz następną wartość w sekwencji.
źródło