Discussion:
Añadir nuevo campo en SQL Server
(demasiado antiguo para responder)
Bernardo
2004-11-29 17:10:28 UTC
¿Como puedo añadir un nuevo campo autonumerico a una tabla
de sql server que ya tiene registros desde código?.

Supongo que debo de crear el campo como "no" autonumerico
darle un valor para cada registro y luego convertirlo en
autonumerico, pero: ¿como creo el campo? y despues de
darle valores ¿como le digo que sea autonumerico?

Desde ya muchas gracias.
"Victor Koch" <v i c t o r (arroba)correo(punto)waldbott(punto)com(punto)ar>
2004-11-29 17:49:52 UTC
Hola Bernardo,

Creo que te convendría crear una nueva tabla y copiar los registros de la
vieja a la nueva.

--
Un saludo, Víctor Koch.


"Bernardo" <***@discussions.microsoft.com> escribi� en el mensaje news:9bfe01c4d636$535676d0$***@phx.gbl...
¿Como puedo añadir un nuevo campo autonumerico a una tabla
de sql server que ya tiene registros desde código?.

Supongo que debo de crear el campo como "no" autonumerico
darle un valor para cada registro y luego convertirlo en
autonumerico, pero: ¿como creo el campo? y despues de
darle valores ¿como le digo que sea autonumerico?

Desde ya muchas gracias.
Bernardo
2004-11-29 18:05:51 UTC
Hola, y no puedo crear el campo desde codigo?, es que no
puedo acceder al administrador corporativo ya que es un
cliente que esta lejos. Y crear la nueva tabla y traspasar
los codigos todo desde codigo la verdad me pierdo un poco.
He visto que desde el administrador corporativo si creo un
nuevo campo y le pongo que es identidad el automaticamente
lo reenumera.

Gracias
-----Mensaje original-----
Hola Bernardo,
Creo que te convendría crear una nueva tabla y copiar los
registros de la
vieja a la nueva.
--
Un saludo, Víctor Koch.
¿Como puedo añadir un nuevo campo autonumerico a una tabla
de sql server que ya tiene registros desde código?.
Supongo que debo de crear el campo como "no" autonumerico
darle un valor para cada registro y luego convertirlo en
autonumerico, pero: ¿como creo el campo? y despues de
darle valores ¿como le digo que sea autonumerico?
Desde ya muchas gracias.
.
miguel virtual
2004-11-29 19:16:17 UTC
Hola bernando.
Claro que puedes crear el autonumerico desde codigo, de hecho, todo lo que
haces desde el ADO, DAO etc, son instrucciones SQL que interpreta el
servidor SQL. Insertar, eliminar, modificar, crear tabla, eliminar tabla,
etc, todo se puede hacer desde el lenguaje SQL.

Te doy un ejemplo de como crear un autonumerico en sql:


db.execute " CREATE TABLE dbo.Tmp_Tabla1 ( id int NOT NULL, id2 int NOT
NULL IDENTITY (1, 1) ) ON [PRIMARY] "
db.execute " SET IDENTITY_INSERT dbo.Tmp_Tabla1 OFF "
db.execute " IF EXISTS(SELECT * FROM dbo.Tabla1) "
db.execute " EXEC('INSERT INTO dbo.Tmp_Tabla1 (id) SELECT id FROM
dbo.Tabla1 TABLOCKX')
db.execute " DROP TABLE dbo.Tabla1 "
db.execute " EXECUTE sp_rename N'dbo.Tmp_Tabla1', N'Tabla1', 'OBJECT' "


db es una variable de tipo ADODB.Connection y el campo nuevo agregado es
"ID2"
Ahora te digo un truco buenisimo, cuando estas en el diseño de una tabla en
sql server y modificar algo o incluso la creas de nuevo, se activa el tercer
boton que como una especie de pergamino, si lo pulsas antes de darle a
guardar, te muestra la sintaxi sql que necesitas para ejecutar las
modificaciones. si lo guardas en un archivo, puedes ejecutarlo desde VB para
hacer las modificaciones desde codigo.
Yo uso este sistema para agregar, eliminar o modificar campo e incluso
tablas en los clientes, sin necesidad de tocar sus bases de datos. El exe
actualizado se encarga de cambiar la base de datos desde codigo y sin pisar
las oficinas del cliente.

No se si me he explicado bien. Suerte.
"Bernardo" <***@discussions.microsoft.com> escribi� en el mensaje news:9bfe01c4d636$535676d0$***@phx.gbl...
¿Como puedo añadir un nuevo campo autonumerico a una tabla
de sql server que ya tiene registros desde código?.

Supongo que debo de crear el campo como "no" autonumerico
darle un valor para cada registro y luego convertirlo en
autonumerico, pero: ¿como creo el campo? y despues de
darle valores ¿como le digo que sea autonumerico?

Desde ya muchas gracias.