Principales respuestas
Alter column identity

Pregunta
-
hola a todos, tengo un campo de un tabla, esta tavbla ya tiene datos, y necesito agregar a un campo el atributo identity, ya actualice para q el pruimer valor sea uno y se incremente de a uno, para q los valores no sean unicos, ahora la rpegunta es, como hago el alter?, lo hice y me marca error:
ALTER TABLE HC_ALM_TRIAGEcb
ALTER COLUMN consecutivo FLOAT IDENTITY(1,1)el error es:Sintaxis incorrecta cerca de la palabra clave 'IDENTITY'.
Gracias
Respuestas
-
Hola.
No se puede. Deberás reconstruir la tabla para hacerlo. Una forma de conseguirlo es usando Management Studio (que reconstruye la tabla). Te paso un script de ese tipo:
BEGIN TRANSACTION SET QUOTED_IDENTIFIER ON SET ARITHABORT ON SET NUMERIC_ROUNDABORT OFF SET CONCAT_NULL_YIELDS_NULL ON SET ANSI_NULLS ON SET ANSI_PADDING ON SET ANSI_WARNINGS ON COMMIT BEGIN TRANSACTION GO CREATE TABLE dbo.Tabla ( campo1 int NOT NULL IDENTITY (1, 2), campo2 nchar(10) NULL ) ON [PRIMARY] GO COMMIT BEGIN TRANSACTION SET QUOTED_IDENTIFIER ON SET ARITHABORT ON SET NUMERIC_ROUNDABORT OFF SET CONCAT_NULL_YIELDS_NULL ON SET ANSI_NULLS ON SET ANSI_PADDING ON SET ANSI_WARNINGS ON COMMIT BEGIN TRANSACTION GO CREATE TABLE dbo.Tmp_Tabla ( campo1 int NOT NULL IDENTITY (1, 1), campo2 nchar(10) NULL ) ON [PRIMARY] GO SET IDENTITY_INSERT dbo.Tmp_Tabla ON GO IF EXISTS(SELECT * FROM dbo.Tabla) EXEC('INSERT INTO dbo.Tmp_Tabla (campo1, campo2) SELECT campo1, campo2 FROM dbo.Tabla WITH (HOLDLOCK TABLOCKX)') GO SET IDENTITY_INSERT dbo.Tmp_Tabla OFF GO DROP TABLE dbo.Tabla GO EXECUTE sp_rename N'dbo.Tmp_Tabla', N'Tabla', 'OBJECT' GO COMMIT
Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)- Propuesto como respuesta Alberto López Grande (qwalgrande)Moderator viernes, 19 de marzo de 2010 22:57
- Marcado como respuesta Gustavo LarrieraModerator lunes, 22 de marzo de 2010 16:02
Todas las respuestas
-
Hola.
No se puede. Deberás reconstruir la tabla para hacerlo. Una forma de conseguirlo es usando Management Studio (que reconstruye la tabla). Te paso un script de ese tipo:
BEGIN TRANSACTION SET QUOTED_IDENTIFIER ON SET ARITHABORT ON SET NUMERIC_ROUNDABORT OFF SET CONCAT_NULL_YIELDS_NULL ON SET ANSI_NULLS ON SET ANSI_PADDING ON SET ANSI_WARNINGS ON COMMIT BEGIN TRANSACTION GO CREATE TABLE dbo.Tabla ( campo1 int NOT NULL IDENTITY (1, 2), campo2 nchar(10) NULL ) ON [PRIMARY] GO COMMIT BEGIN TRANSACTION SET QUOTED_IDENTIFIER ON SET ARITHABORT ON SET NUMERIC_ROUNDABORT OFF SET CONCAT_NULL_YIELDS_NULL ON SET ANSI_NULLS ON SET ANSI_PADDING ON SET ANSI_WARNINGS ON COMMIT BEGIN TRANSACTION GO CREATE TABLE dbo.Tmp_Tabla ( campo1 int NOT NULL IDENTITY (1, 1), campo2 nchar(10) NULL ) ON [PRIMARY] GO SET IDENTITY_INSERT dbo.Tmp_Tabla ON GO IF EXISTS(SELECT * FROM dbo.Tabla) EXEC('INSERT INTO dbo.Tmp_Tabla (campo1, campo2) SELECT campo1, campo2 FROM dbo.Tabla WITH (HOLDLOCK TABLOCKX)') GO SET IDENTITY_INSERT dbo.Tmp_Tabla OFF GO DROP TABLE dbo.Tabla GO EXECUTE sp_rename N'dbo.Tmp_Tabla', N'Tabla', 'OBJECT' GO COMMIT
Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)- Propuesto como respuesta Alberto López Grande (qwalgrande)Moderator viernes, 19 de marzo de 2010 22:57
- Marcado como respuesta Gustavo LarrieraModerator lunes, 22 de marzo de 2010 16:02
-