Tengo una tabla existente que estoy a punto de volar porque no la creé con la ID
columna configurada para ser la columna de identidad de la tabla.
Usando SQL Server Management Studio , escribí un script "Crear para ..." de la tabla existente y obtuve esto:
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]
Mi pregunta es, ¿cómo modificaría esto SQL
para que mi tabla resultante tenga la ID
columna configurada como Identidad ?
sql
sql-server
tsql
jp2code
fuente
fuente
Respuestas:
fuente
PK_History
valor aID
ni nada?Esto ya ha sido respondido, pero creo que la sintaxis más simple es:
El índice de restricción más complicado es útil cuando realmente desea cambiar las opciones.
Por cierto, prefiero nombrar esa columna HistoryId, para que coincida con los nombres de las columnas en las relaciones de clave externa.
fuente
ID int constraint PK_History primary key identity(1,1)
Yo creo.NOT NULL
es redundante.por supuesto, dado que está creando la tabla en SQL Server Management Studio, puede usar el diseñador de tablas para establecer la Especificación de identidad.
fuente
La clave única permite un máximo de 2 valores NULL. Explicación:
Si intenta insertar los mismos valores que a continuación:
Cada vez obtendrá un error como:
fuente
ID
columna fuera única , no laName
columna. ¿Por qué ha agregado la restricción única a laName
columna? ¿Cómo te beneficia eso en tuteppp
mesa?