Acerca de campos identity

23/02/2009 - 20:44 por Firefox | Informe spam
Hola si tengo una tabla que ya contiene datos y quiero crearle una
columna identity (necesito replicarla). Como hago para generar un
identificador unico para cada linea si estas ya estaban ahi. Muchas
Gracias por anticipado (^_^)
 

Leer las respuestas

#1 Alejandro Mesa
23/02/2009 - 22:10 | Informe spam
Cuando dices replicarla, te refieres a usar el mecanismo de replicacion
existente en SQL Server?

De ser asi, entonces necesitas una columna tipo "uniqueidentifier" y que
este marcada como "rowguidcol", ademas de crear una restriccion de valor por
defecto, que este atachada a esa columna.

Si por lo contrario solo quieres una columna nueva con propiedad "identity",
entonces sql server la llenara por ti, despues de haber sido adocionada.

USE tempdb;
GO

CREATE TABLE dbo.t1 (c1 INT NOT NULL UNIQUE);
GO

INSERT INTO dbo.t1 VALUES(4);
INSERT INTO dbo.t1 VALUES(17);

SELECT *
FROM dbo.t1;
GO

ALTER TABLE dbo.t1
ADD c2 UNIQUEIDENTIFIER NOT NULL ROWGUIDCOL CONSTRAINT DF_t1_c2
DEFAULT(NEWID());
GO

SELECT *
FROM dbo.t1;
GO

ALTER TABLE dbo.t1
ADD c3 INT NOT NULL IDENTITY(1, 1);
GO

SELECT *
FROM dbo.t1;
GO

DROP TABLE dbo.t1;
GO


AMB



"Firefox" wrote:

Hola si tengo una tabla que ya contiene datos y quiero crearle una
columna identity (necesito replicarla). Como hago para generar un
identificador unico para cada linea si estas ya estaban ahi. Muchas
Gracias por anticipado (^_^)

Preguntas similares