G
GatewayToCode
Hallo,
ich habe ein Problem mit einer INSERT INTO - sql anweisung, bei der ich einen neuen Datensatz in eine Tabelle schreiben möchte, die:
1. Nur ein einziges Feld besitzt
2. Das Feld ist vom Typ BIGINT
3. Das Feld hat die Eigenschaft [is Identity = True ] [ID-Ausgangswert = 1] [ID-Increment = 1]
Bei der PostgreSQL-Datenbank war das kein Problem, weil dort keine "Autowert"-Felder existieren, sondern das ganze über einen "externen Zähler" (SERIAL) funktioniert.
Mir wurde leider die PostgreSql-Datenbank unter dem hintern weggezogen und jetzt sitze ich auf einem Microsoft-SQL Server 2008
Zum Vergleich schreibe ich beide INSERT Anweisungen hier rein:
PostgreSQL:
INSERT INTO Tabellename VALUES( nextval('Tabellenname_id_seq') )
nextval('Tabellenname_id_seq') stellt die Automatisch incrementierte ID da, die ich von dem Zähler zurück bekomme.
MS-SQL:
INSERT INTO Tabellename VALUES()
MS-SQL Incrementiert Automatisch und Felder mit der Eigenschaft >>is IDENTITY<< dürfen nicht angegeben werden.
Wie aber bekomme ich jetzt in diese Tabelle einen neuen Datensatz?
Um die Frage vorweg zu nehmen: Warum brauche ich das, bzw warum mache ich das so?
Nehmen wir an es gibt zwei Tabellen: "Projekt" 1------n "Projektdetail". "Projekt" ist meine Tabelle mit dem Schlüsselfeld und in "Projektdetail" befinden sich weitere Eigenschaften. In "Projektdetail" wird auch die Historie der Datensätze gespeichert, sodass eine ID mehrfach auftaucht, nur mit anderem Erstellungsdatum.
Ich hoffe mein Problem ist ersichtlich.
GatewayToCode
ich habe ein Problem mit einer INSERT INTO - sql anweisung, bei der ich einen neuen Datensatz in eine Tabelle schreiben möchte, die:
1. Nur ein einziges Feld besitzt
2. Das Feld ist vom Typ BIGINT
3. Das Feld hat die Eigenschaft [is Identity = True ] [ID-Ausgangswert = 1] [ID-Increment = 1]
Bei der PostgreSQL-Datenbank war das kein Problem, weil dort keine "Autowert"-Felder existieren, sondern das ganze über einen "externen Zähler" (SERIAL) funktioniert.
Mir wurde leider die PostgreSql-Datenbank unter dem hintern weggezogen und jetzt sitze ich auf einem Microsoft-SQL Server 2008
Zum Vergleich schreibe ich beide INSERT Anweisungen hier rein:
PostgreSQL:
INSERT INTO Tabellename VALUES( nextval('Tabellenname_id_seq') )
nextval('Tabellenname_id_seq') stellt die Automatisch incrementierte ID da, die ich von dem Zähler zurück bekomme.
MS-SQL:
INSERT INTO Tabellename VALUES()
MS-SQL Incrementiert Automatisch und Felder mit der Eigenschaft >>is IDENTITY<< dürfen nicht angegeben werden.
Wie aber bekomme ich jetzt in diese Tabelle einen neuen Datensatz?
Um die Frage vorweg zu nehmen: Warum brauche ich das, bzw warum mache ich das so?
Nehmen wir an es gibt zwei Tabellen: "Projekt" 1------n "Projektdetail". "Projekt" ist meine Tabelle mit dem Schlüsselfeld und in "Projektdetail" befinden sich weitere Eigenschaften. In "Projektdetail" wird auch die Historie der Datensätze gespeichert, sodass eine ID mehrfach auftaucht, nur mit anderem Erstellungsdatum.
Ich hoffe mein Problem ist ersichtlich.
GatewayToCode