¿como modificar la estructura de una tabla?

29/07/2004 - 09:28 por Pedro J. | Informe spam
En concreto: lo que quiero es poder modificar un campo de una tabla
(actualmente tipo INT) para que tenga la propiedad IDENTITY.
Supongo que con ALTER TABLE, pero no veo la forma para modificarlo en los
libros en pantalla
ALTER TABLE Nombre_Tabla ALTER COLUMN Nombre_Columa ..
¿que hay que poner en los puntos suspensivos? (si es que esta es la forma...
claro...

Gracias y un saludo.

Pedro J.
 

Leer las respuestas

#1 Eladio Rincón
29/07/2004 - 11:50 | Informe spam
Hola Pedro J,

cambiar la propiedad de una columna a IDENTITY no se puede hacer con SQL Server 2000;

para ello deberías hacer lo siguiente:
-añadir una columna nueva de tipo identity,
-habilitar la inserción de valores en la columna de tipo identidad.
-mover los valores de las columna original a la destino (la que es ahora identity).
-deshabilitar la inserción de identities
-borrar la columna original.

puede ser una tarea muy dificil de hacer sobre todo si la tabla es muy grande y no tienes periodos de tiempo en los que la tabla no pueda ser usada ...

mejor un ejemplo:
use tempdb
go
drop table t1
go
create table t1 (
id1 int)
go
insert into t1 values ( 0)
insert into t1 values ( 1)
insert into t1 values ( 2)
go

alter table t1 add id2 int identity
go
set identity_insert on t1
go
update t1
set t2 = t1
set identity_insert off t1
go
insert into t1 ( id1 ) values ( 44 )
go
select * from t1



Eladio Rincón
SQL Server MVP, PASS Spanish Group
Solid Quality Learning Iberoamericana
http://www.SolidQualityLearning.com

http://www.siquelnet.com
"Comparte lo que sabes, aprende lo que no sepas." FGG


Pedro J. wrote:
En concreto: lo que quiero es poder modificar un campo de una tabla
(actualmente tipo INT) para que tenga la propiedad IDENTITY.
Supongo que con ALTER TABLE, pero no veo la forma para modificarlo en
los libros en pantalla
ALTER TABLE Nombre_Tabla ALTER COLUMN Nombre_Columa ..
¿que hay que poner en los puntos suspensivos? (si es que esta es la
forma... claro...

Gracias y un saludo.

Pedro J.

Preguntas similares