Heim > Datenbank > MySQL-Tutorial > Kann eine SQL Server-Tabelle mehr als eine Identitätsspalte haben?

Kann eine SQL Server-Tabelle mehr als eine Identitätsspalte haben?

Patricia Arquette
Freigeben: 2024-12-25 07:17:20
Original
646 Leute haben es durchsucht

Can a SQL Server Table Have More Than One Identity Column?

Kann eine SQL Server-Tabelle zwei Identitätsspalten haben?

Viele Datenbankdesigner müssen mehrere Spalten in einer Tabelle haben, die automatisch Inkrementieren, entweder für den Primärschlüssel oder für andere Zwecke. In SQL Server ist dies jedoch nicht direkt möglich. Gemäß der Transact-SQL-Referenzdokumentation:

Pro Tabelle kann nur eine Identitätsspalte erstellt werden.

Beispiel:

Bedenken Sie die folgende SQL-Anweisung , die versucht, eine Tabelle mit zwei Identitätsspalten zu erstellen:

CREATE TABLE [dbo].[Foo](
    [FooId] [int] IDENTITY(1,1) NOT NULL,
    [BarId] [int] IDENTITY(1,1) NOT NULL
)
Nach dem Login kopieren

Diese Anweisung schlägt mit Folgendem fehl Fehler:

Msg 2744, Level 16, State 2, Line 1
Multiple identity columns specified for table 'Foo'. Only one identity column per table is allowed.
Nach dem Login kopieren

Alternative Lösungen:

Wenn Sie mehrere automatisch inkrementierende Werte in einer Tabelle benötigen, ziehen Sie die folgenden alternativen Lösungen in Betracht:

  • Zusammengesetzter Primärschlüssel: Erstellen Sie einen Primärschlüssel, der mehrere Spalten zu einer einzigen, eindeutigen zusammenfasst Bezeichner.
  • Nicht-Identitätsspalte: Erstellen Sie eine Nicht-Identitätsspalte und erhöhen Sie ihren Wert manuell mithilfe eines Triggers oder eines anderen Mechanismus.
  • Separate Tabelle: Erstellen Sie eine separate Tabelle, um die automatisch inkrementierenden Werte zu speichern, und referenzieren Sie sie mithilfe einer Fremdtabelle aus Ihrer Haupttabelle Schlüssel.

Obwohl SQL Server nicht nativ mehrere Identitätsspalten unterstützt, können diese alternativen Lösungen die von Ihnen benötigte Funktionalität bereitstellen.

Das obige ist der detaillierte Inhalt vonKann eine SQL Server-Tabelle mehr als eine Identitätsspalte haben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage