existe campo en tb

22/08/2007 - 08:08 por Pedro | Informe spam
Buenos dias

Estoy haciendo un script, y necesito hacer un alter de una tabla, para
añadir un nuevo campo, pero antes de añadir el nuevo campo, quiero
ver/preguntar si existe dicho campo en la tabla, si existe no lo creo y si
existe lo creo, como hacerlo?

Para el Alter no hay problema, la pregunta esta en el: Si existe dicho
campo????

Preguntas similare

Leer las respuestas

#1 Carlos Sacristan
22/08/2007 - 10:03 | Informe spam
No has dicho la versión que estás usando, pero siempre puedes consultar
las vistas INFORMATION_SCHEMA. En tu caso, la que te interesa es
INFORMATION_SCHEMA.COLUMNS

"Pedro" escribió en el mensaje
news:
Buenos dias

Estoy haciendo un script, y necesito hacer un alter de una tabla, para
añadir un nuevo campo, pero antes de añadir el nuevo campo, quiero
ver/preguntar si existe dicho campo en la tabla, si existe no lo creo y si
existe lo creo, como hacerlo?

Para el Alter no hay problema, la pregunta esta en el: Si existe dicho
campo????
Respuesta Responder a este mensaje
#2 Alejandro Mesa
22/08/2007 - 19:36 | Informe spam
Pedro,

Tambien puedes usar la funcion COLUMNPROPERTY, usando una propiedad comun.
Si esta funcion retorna null, entonces la columna no existe.

Ejemplo:

use tempdb
go

create table dbo.t1 (
c1 int
)
go

if COLUMNPROPERTY(object_id('dbo.t1') , 'c2', 'AllowNull') is null
alter table dbo.t1
add c2 int
else
print 'la columna ya existe'
go

select *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_SCHEMA = 'dbo' and TABLE_NAME = 't1'
order by ORDINAL_POSITION
go

drop table dbo.t1
go

AMB


"Pedro" wrote:

Buenos dias

Estoy haciendo un script, y necesito hacer un alter de una tabla, para
añadir un nuevo campo, pero antes de añadir el nuevo campo, quiero
ver/preguntar si existe dicho campo en la tabla, si existe no lo creo y si
existe lo creo, como hacerlo?

Para el Alter no hay problema, la pregunta esta en el: Si existe dicho
campo????
Respuesta Responder a este mensaje
#3 FRVSoft
24/08/2007 - 19:11 | Informe spam
Hola Pedro, esto te puede servir:

IF NOT Exists(SELECT * FROM syscolumns AS sc INNER JOIN sysobjects AS so ON
sc.id=so.id AND
sc.name='NombreCampoNuevo' AND
so.name='NombreTabla')
Aquí pondrías la instrucción ALTER TABLE
GO


"Pedro" escribió en el mensaje
news:
Buenos dias

Estoy haciendo un script, y necesito hacer un alter de una tabla, para
añadir un nuevo campo, pero antes de añadir el nuevo campo, quiero
ver/preguntar si existe dicho campo en la tabla, si existe no lo creo y si
existe lo creo, como hacerlo?

Para el Alter no hay problema, la pregunta esta en el: Si existe dicho
campo????
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida