preguntar si existe en sql

31/08/2004 - 14:43 por Ana | Informe spam
Hola todos!
Necesito hacer lo siguente

Si existe la Tabla1 Borrarla

seria un If Exist Tabla1 Then Drop Tabla1

pero esto me da un error .. alguen me puede decir como
seria la sintaxis??

desde ya gracias

Ana

Preguntas similare

Leer las respuestas

#1 Javier Loria
31/08/2004 - 15:08 | Informe spam
Hola Ana:
La forma en que lo hace el Enterprise Manager es:
==if exists (select *
from dbo.sysobjects
where id = object_id(N'[dbo].[Customers]')
and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Customers]

== Tiene algunos "problemas". En principio por estar usando tablas de
sistema es muy probable que no sea compatible entre versiones de SQL.
Podria usar lo mismo usando las tablas del information_schema que por
ser ANSI perduran mas. Algo como:
==IF EXISTS (SELECT *
FROM Information_Schema.Tables
WHERE Table_Name='Consumo'
AND Table_Schema='dbo'
AND Table_Type='BASE TABLE')
DROP TABLA dbo.Customers
== Espero te sirva,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Ana" wrote in message
news:092601c48f58$1fad1f70$
Hola todos!
Necesito hacer lo siguente

Si existe la Tabla1 Borrarla

seria un If Exist Tabla1 Then Drop Tabla1

pero esto me da un error .. alguen me puede decir como
seria la sintaxis??

desde ya gracias

Ana
Respuesta Responder a este mensaje
#2 ulises
31/08/2004 - 15:08 | Informe spam
Si utilizas el generador de script del EM obtendrás esto :

if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[nombretabla]') and OBJECTPROPERTY(id,
N'IsUserTable') = 1)
drop table [dbo].[nombretabla]
GO

CREATE TABLE [dbo].[nombretabla] (
...

podrías modificarlo, en lugar de * podrías usar 1 de
manera de aligerarlo o si no deseas usar las tablas del
sistema podrías usar :

if exists(select 1 from INFORMATION_SCHEMA.TABLES where
TABLE_NAME = 'tablaprueba' and TABLE_TYPE = 'BASE TABLE')
drop table [dbo].[tablaprueba]

Saludos,
Ulises

Hola todos!
Necesito hacer lo siguente

Si existe la Tabla1 Borrarla

seria un If Exist Tabla1 Then Drop Tabla1

pero esto me da un error .. alguen me puede decir como
seria la sintaxis??

desde ya gracias

Ana
.

Respuesta Responder a este mensaje
#3 Lázaro
31/08/2004 - 15:13 | Informe spam
if exists (select * from dbo.sysobjects where id object_id(N'[dbo].[tabla1]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[tabla1]
GO

saludos

"Ana" wrote in message
news:092601c48f58$1fad1f70$
Hola todos!
Necesito hacer lo siguente

Si existe la Tabla1 Borrarla

seria un If Exist Tabla1 Then Drop Tabla1

pero esto me da un error .. alguen me puede decir como
seria la sintaxis??

desde ya gracias

Ana
Respuesta Responder a este mensaje
#4 Javier Loria
31/08/2004 - 15:44 | Informe spam
Hola Ulises:
Misma respuesta, mismo minuto!!!
No debe ser tan mala, si respondimos igual :D
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"ulises" wrote in message
news:367a01c48f5b$a0f42fd0$
Si utilizas el generador de script del EM obtendrás esto :

if exists (select * from dbo.sysobjects where id object_id(N'[dbo].[nombretabla]') and OBJECTPROPERTY(id,
N'IsUserTable') = 1)
drop table [dbo].[nombretabla]
GO

CREATE TABLE [dbo].[nombretabla] (
...

podrías modificarlo, en lugar de * podrías usar 1 de
manera de aligerarlo o si no deseas usar las tablas del
sistema podrías usar :

if exists(select 1 from INFORMATION_SCHEMA.TABLES where
TABLE_NAME = 'tablaprueba' and TABLE_TYPE = 'BASE TABLE')
drop table [dbo].[tablaprueba]

Saludos,
Ulises

Hola todos!
Necesito hacer lo siguente

Si existe la Tabla1 Borrarla

seria un If Exist Tabla1 Then Drop Tabla1

pero esto me da un error .. alguen me puede decir como
seria la sintaxis??

desde ya gracias

Ana
.

Respuesta Responder a este mensaje
#5 Gustavo Larriera [MVP]
31/08/2004 - 15:54 | Informe spam
if 'nombreTabla' in (select table_name from information_schema.tables)
print 'la tabla existe'
else
print 'no existe la tabla'

Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"Ana" wrote in message
news:092601c48f58$1fad1f70$
Hola todos!
Necesito hacer lo siguente

Si existe la Tabla1 Borrarla

seria un If Exist Tabla1 Then Drop Tabla1

pero esto me da un error .. alguen me puede decir como
seria la sintaxis??

desde ya gracias

Ana
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida