die folgende Tabelle und SQL von Microsoft's INSERT documentation Betrachten Sie die mit Identity-Spalten behandelt:Geben Sie „NEXT VALUE“ für INSERT-Anweisung Identitätsspalte in SQL Server
CREATE TABLE dbo.T1 (column_1 int IDENTITY, column_2 VARCHAR(30));
GO
INSERT T1 (column_2) VALUES ('Row #2');
Die INSERT
Anweisung nicht column_1
als eine Spalte von der angeben wird Tabelle und SQL Server füllt automatisch den nächsten Wert für diese Identitätsspalte. Dies ist die normale Art und Weise, wie Identitätsspalten behandelt werden.
Wie kann ich das gleiche Verhalten haben und gleichzeitig den Spaltennamen angeben?
Zum Beispiel, ich suche für etwas wie:
INSERT INTO T1 (column_1, column_2)
VALUES (NEXT VALUE, 'Row #3');
GO
Ich glaube nicht, NEXT VALUE
Werke hier, aber es ist etwas, das funktioniert? Gibt es ein Schlüssel-Token oder eine Funktion, die angibt, dass die Identitätsspalte verwendet werden soll?
Hinweis: Der Grund warum ich frage ist, dass das Framework, das ich verwende, alle Spalten benötigt, die in der Spaltenliste angegeben werden.
Ich bin nicht sicher, dass Sie das tun können. Ist dieser Rahmen eine beliebte Sache? Sind Sie sicher, dass es diese Einschränkung hat? – DavidG
Das Framework ist keine Open Source und kann auf diese Weise nicht repariert werden. –
Ihr Framework möglicherweise eine Option Store-Prozedur für einfügen verwenden, ich glaube, es wird einfacher Weg, diese Straße zu gehen. – vittore