Hola,
En SQL2000 tenes la siguiente sintaxis....(extraido de lo que genera el propio motor al exportar los objetos como scripts), para las tablas, procedimientos y vistas...

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PROCESOS_NEW]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[spREDONDEO_DOLARES') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[V_FECHA_PROC]') and OBJECTPROPERTY(id, N'IsView') = 1)


Un ejemplo sería armarte un SP que haga algo como

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PROCESOS_NEW]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
 begin
    ALTER TABLE ...
 end

else

 begin

    CREATE TABLE...
 
 end


Obviamente si necesitas hacerlo por diferencias, es decir que trabaje mirando por que campo le falta o si el tipo de dato es distinto...lo vas a tener que trabajar bastante.

Tambien tenes una serie de vistas del schema INFORMATION_SCHEMA (mirate lo BOL) que tienen varias cosas resueltas.

Espero que te ayude en algo esto...

Saludos,.



Silvana Natalia Quiroga wrote:
Tenes que consultar el diccionario de la base de datos, existen varias
tablas y sp de sistema que te permiten hacer esto.

Por ejemplo, para saber si existe la tabla 'comprobantes':
	select * from sysobjects where name like '%comprobantes%'
Por ejemplo, para saber si existe la columna 'id_comprobante':
	select * from syscolumns where name like '%id_comprobante%'

También, para conocer la estructura de una tabla utilizo:
	exec sp_columns 'comprobantes'
Y para ver información de una tabla:
	exec sp_table 'comprobantes'

Si bien vas a tener que investigar más, espero que esto te ayude.
Silvana.-

-----Mensaje original-----
De: [email protected] [mailto:[email protected]] En nombre de Julian Berlin
Enviado el: Martes, 07 de Noviembre de 2006 03:00 p.m.
Para: dbms List Member
Asunto: [dbms] Script de DB


Hola gente
Necesito hacer un script que me permita actualizar objetos de una base de
datos MSSQL 2005 (con objetos me refiero a tablas , funciones , SP ,etc )de
manera tal que de si ya existen , me haga un ALTER y en caso q no los cree ,
la verdad no tengo mucha idea de cómo seria la sintaxis , osea seria algo
asi:

SI existe <NombreTabla>
       ALTER TABLE....
SINO
	CREATE TABLE....
FIN

Si alguien tiene alguna idea de cómo hacer esto lo agradecere ! 
Saludos !!

Julián R Berlín




  

--

SISTEMATICA ingenieria de software srl
Diego Campos
Pasco 1675 (2000) Rosario, Santa Fe, Argentina.
Tel./Fax: +54 (341) 485-1432 / 568-0183

Responder a