mam tabelę z pojedynczej kolumny, która jest tożsamość generowanych automatyczniewstawić wiele rzędów wartości domyślnych do tabeli
create table SingleIdTable (
id int identity(1,1) not null
)
można wstawić jeden rząd z automatycznym generowane z identyfikatorem:
insert into SingleIdTable default values
chcę wstawić wiele wierszy i użyć składni wyjścia, aby uzyskać ich identyfikatory, coś jak:
insert into SingleIdTable
output inserted.Id into @TableOfIds
select (default values) from SomeOtherTable where Attribute is null
gdzi Zamierzeniem jest wstawienie wiersza do SingleIdTable
dla każdego wiersza w SomeOtherTable
, gdzie Attribute
ma wartość null przy użyciu automatycznie generowanego identyfikatora. Powyższe nie działa, ale jak mogłem to zrobić. Zauważam, że gdyby mój stół miał więcej niż jedną kolumnę, mógłbym to zrobić, ale nie mogę wybrać pustych wierszy, co naprawdę chcę zrobić.
Nie mogę zmienić definicji SomeOtherTable
.
+1 Nigdy nie myślałem o MERGE – RichardTheKiwi
Przebieganie ... Stół jest artefaktem osoby niewłaściwie stosującej NHibernate podczas mapowania grupy. Zgodzę się z tym, ale teraz zdaję sobie sprawę, że mogę zrobić z korelacją wewnętrznej kwerendy z insertem, tak żebym mógł 'wyprowadzić inser.id, SomeOtherTable.id)'. czy to możliwe? Naprawdę po prostu muszę dopasować moją torbę generowanych identyfikatorów, każdy z elementem 'SomeOtherTable', gdzie' Attribute' ma wartość null. jakieś pomysły? – silasdavis
@silasdavis - Tak po prostu użyj 'OUTPUT INSERTED.id, T.id' –