Ich habe eine vorhandene Tabelle, die ich wegblasen werde, weil ich sie nicht mit der ID
Spalte erstellt habe, die als Identitätsspalte der Tabelle festgelegt ist.
Mit SQL Server Management Studio habe ich ein "Create To ..." der vorhandenen Tabelle per Skript erstellt und Folgendes erhalten:
CREATE TABLE [dbo].[History](
[ID] [int] NOT NULL,
[RequestID] [int] NOT NULL,
[EmployeeID] [varchar](50) NOT NULL,
[DateStamp] [datetime] NOT NULL,
CONSTRAINT [PK_History] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Meine Frage ist, wie würde ich dies ändern, SQL
damit für meine resultierende Tabelle die ID
Spalte als Identität festgelegt wird ?
sql
sql-server
tsql
jp2code
quelle
quelle
Antworten:
quelle
PK_History
Wert nicht ändernID
oder so?Dies wurde bereits beantwortet, aber ich denke, die einfachste Syntax ist:
Der kompliziertere Einschränkungsindex ist nützlich, wenn Sie die Optionen tatsächlich ändern möchten.
Übrigens bevorzuge ich es, eine solche Spalte HistoryId zu benennen, damit sie mit den Namen der Spalten in Fremdschlüsselbeziehungen übereinstimmt.
quelle
ID int constraint PK_History primary key identity(1,1)
Ich glaube.NOT NULL
ist überflüssig.Da Sie die Tabelle in SQL Server Management Studio erstellen, können Sie natürlich den Tabellen-Designer verwenden, um die Identitätsspezifikation festzulegen.
quelle
Der eindeutige Schlüssel erlaubt maximal 2 NULL-Werte. Erklärung:
Wenn Sie versuchen, dieselben Werte wie unten einzufügen:
Jedes Mal erhalten Sie Fehler wie:
quelle
ID
Spalte eindeutig machen , nicht dieName
Spalte. Warum haben Sie der Spalte die eindeutige Einschränkung hinzugefügtName
? Wie kommt Ihnen das in Ihremteppp
Tisch zugute ?