Copiar estructura tabla en otra existente.

08/04/2004 - 11:58 por Juanjo | Informe spam
Hola a todos.
Soy bastante novato en SQL Server y no se si se puede hacer esto.
Si tengo una aplicación que ataca una BDD SQL Server2000 y necesito
añadir más columnas a alguna tabla, ¿tengo que ir a todos los clientes que
usan mi aplicación y añadir en todas sus respectivas BDD las columnas en
cuestión?
Lo que he hecho es crearme una BDD Maestra con tablas vacías (que
reflejan la estructura de la BDD que usa la aplicación). Si añado columnas
nuevas a una tabla, lo hago en esta BDD Maestra. ¿Se podría luego copiar la
nueva estructura en las tablas de destino respetándome los datos que ya
tengan? O ¿Hay una forma mejor de hacerlo?


Muchas gracias,
Juanjo.

Preguntas similare

Leer las respuestas

#1 Maximiliano D. A.
08/04/2004 - 14:16 | Informe spam
Hola, hay una forma mas simple.

Si la tabla por ej le vas a agregar un campo podrias armarte un Script que
haga esto y al cliente en un archivo .Bat se lo mandas.

Veamos un ejemplo si?

=
CREATE TABLE #PEPE (ID CHAR(10), NOMBRE CHAR(50))

ALTER TABLE #PEPE ADD DIRECCION CHAR(50)


Lo primero que hago es crear una tabla (esto ya lo tenes vos) la segunda
instruccion agrega una columna direccion a esa tabla que cree antes.

Bueno esta segunda linea es la que deberias de poner en un archivo plano con
extension .sql, luego en todos los SqlServer hay un comando llamado Osql,
este se ejecuta de la linea de comandos (revisa los parametros del mismo).

La idea es que en un .BAT puedas poner la instruccion Osql que llame a este
.Sql y esto se ejecutara en tu Servidor.

Claro si es una Bdd antes yo por ej le pondria USE nombre_basededatos, y
luego la linea del Alter

Se entendio?

Otra opcion es que vos tengas un programa desarrollador por ti, que lo que
hace es leer este .Sql y ejecutarlo.
Este programa generalmente reside como una utilidad en tu cliente.

Bye




Salu2
Maxi

Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Juanjo" escribió en el mensaje
news:c537r4$q9p$
Hola a todos.
Soy bastante novato en SQL Server y no se si se puede hacer esto.
Si tengo una aplicación que ataca una BDD SQL Server2000 y necesito
añadir más columnas a alguna tabla, ¿tengo que ir a todos los clientes que
usan mi aplicación y añadir en todas sus respectivas BDD las columnas en
cuestión?
Lo que he hecho es crearme una BDD Maestra con tablas vacías (que
reflejan la estructura de la BDD que usa la aplicación). Si añado columnas
nuevas a una tabla, lo hago en esta BDD Maestra. ¿Se podría luego copiar


la
nueva estructura en las tablas de destino respetándome los datos que ya
tengan? O ¿Hay una forma mejor de hacerlo?


Muchas gracias,
Juanjo.







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.618 / Virus Database: 397 - Release Date: 09/03/2004
Respuesta Responder a este mensaje
#2 Jose Mariano Alvarez \(MUG\)
08/04/2004 - 15:28 | Informe spam
Si usas el "Enterprise Manager" (administrador corporativo) puedes grabar
desde la ventana de diseño, los cambios como un script (apretando el tercer
boton de izquierda a derecha en la barra) que luego puedes aplicar en el
server de destino ..


Jose Mariano Alvarez
Comunidad de base de datos
Grupo de Usuarios Microsoft
www.mug.org.ar

"Maximiliano D. A." <maxi_accotto[arroba]speedy[.]com[.]ar> wrote in message
news:%
Hola, hay una forma mas simple.

Si la tabla por ej le vas a agregar un campo podrias armarte un Script que
haga esto y al cliente en un archivo .Bat se lo mandas.

Veamos un ejemplo si?

=>
CREATE TABLE #PEPE (ID CHAR(10), NOMBRE CHAR(50))

ALTER TABLE #PEPE ADD DIRECCION CHAR(50)

>
Lo primero que hago es crear una tabla (esto ya lo tenes vos) la segunda
instruccion agrega una columna direccion a esa tabla que cree antes.

Bueno esta segunda linea es la que deberias de poner en un archivo plano


con
extension .sql, luego en todos los SqlServer hay un comando llamado Osql,
este se ejecuta de la linea de comandos (revisa los parametros del mismo).

La idea es que en un .BAT puedas poner la instruccion Osql que llame a


este
.Sql y esto se ejecutara en tu Servidor.

Claro si es una Bdd antes yo por ej le pondria USE nombre_basededatos, y
luego la linea del Alter

Se entendio?

Otra opcion es que vos tengas un programa desarrollador por ti, que lo que
hace es leer este .Sql y ejecutarlo.
Este programa generalmente reside como una utilidad en tu cliente.

Bye




Salu2
Maxi

Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Juanjo" escribió en el mensaje
news:c537r4$q9p$
> Hola a todos.
> Soy bastante novato en SQL Server y no se si se puede hacer esto.
> Si tengo una aplicación que ataca una BDD SQL Server2000 y necesito
> añadir más columnas a alguna tabla, ¿tengo que ir a todos los clientes


que
> usan mi aplicación y añadir en todas sus respectivas BDD las columnas en
> cuestión?
> Lo que he hecho es crearme una BDD Maestra con tablas vacías (que
> reflejan la estructura de la BDD que usa la aplicación). Si añado


columnas
> nuevas a una tabla, lo hago en esta BDD Maestra. ¿Se podría luego copiar
la
> nueva estructura en las tablas de destino respetándome los datos que ya
> tengan? O ¿Hay una forma mejor de hacerlo?
>
>
> Muchas gracias,
> Juanjo.
>
>



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.618 / Virus Database: 397 - Release Date: 09/03/2004


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida