verificar una tabla existe drop borrar sql sql-server

drop - ¿Cómo soltar una tabla si existe en SQL Server?



verificar si existe tabla temporal sql server (12)

¿Es correcto hacer lo siguiente?

IF EXISTS(SELECT * FROM dbo.Scores) DROP TABLE dbo.Scores

No. Eso eliminará la tabla solo si contiene filas (y generará un error si la tabla no existe).

En cambio, para una mesa permanente puedes usar

IF OBJECT_ID(''dbo.Scores'', ''U'') IS NOT NULL DROP TABLE dbo.Scores;

O bien, para una tabla temporal puede utilizar

IF OBJECT_ID(''tempdb.dbo.#T'', ''U'') IS NOT NULL DROP TABLE #T;

SQL Server 2016+ tiene una mejor manera, usando DROP TABLE IF EXISTS … Vea la respuesta por @Jovan .

El nombre de la tabla es Scores .

¿Es correcto hacer lo siguiente?

IF EXISTS(SELECT * FROM dbo.Scores) DROP TABLE dbo.Scores



En SQL Server 2016 (13.x) y superior

DROP TABLE IF EXISTS dbo.Scores

En versiones anteriores

IF OBJECT_ID(''dbo.Scores'', ''U'') IS NOT NULL DROP TABLE dbo.Scores;

U es tu table type


Escribí un pequeño UDF que devuelve 1 si su argumento es el nombre de una tabla existente, 0 de lo contrario:

CREATE FUNCTION [dbo].[Table_exists] ( @TableName VARCHAR(200) ) RETURNS BIT AS BEGIN If Exists(select * from INFORMATION_SCHEMA.TABLES where TABLE_NAME = @TableName) RETURN 1; RETURN 0; END GO

Para eliminar el User tabla, si existe, llámelo así:

IF [dbo].[Table_exists](''User'') = 1 Drop table [User]


Espero que esto ayude:

begin try drop table #tempTable end try begin catch end catch


Haz esto, es la forma más fácil.

qry será su propia consulta, lo que desee en la lista de selección.

set @qry = '' select * into TempData from ('' + @qry + '')Tmp '' exec (@qry) select * from TempData drop table TempData


He visto tantos que realmente no funcionan. cuando se crea una tabla temporal, se debe eliminar del tempdb!

El único código que funciona es:

IF OBJECT_ID(''tempdb..#tempdbname'') IS NOT NULL --Remove dbo here DROP TABLE #tempdbname -- Remoeve "tempdb.dbo"


La forma ANSI SQL / multiplataforma es usar INFORMATION_SCHEMA , que fue diseñado específicamente para consultar metadatos sobre objetos dentro de bases de datos SQL.

if exists (select * from INFORMATION_SCHEMA.TABLES where TABLE_NAME = ''Scores'' AND TABLE_SCHEMA = ''dbo'') drop table dbo.Scores;

La mayoría de los servidores RDBMS modernos ofrecen, al menos, soporte básico de INFORMATION_SCHEMA, que incluye: MySQL , Postgres , Oracle , IBM DB2 y Microsoft SQL Server 7.0 (y más) .


O:

if exists (select * from sys.objects where name = ''Scores'' and type = ''u'') drop table Scores


Simple es que:

IF OBJECT_ID(dbo.TableName, ''U'') IS NOT NULL DROP TABLE dbo.TableName

donde dbo.TableName es su tabla deseada y ''U'' es el type de su table .


Yo suelo:

if exists (select * from sys.tables where name = ''tableName'' and schema_id = schema_id(''dbo'')) begin drop table dbo.tableName end


IF EXISTS (SELECT NAME FROM SYS.OBJECTS WHERE object_id = OBJECT_ID(N''Scores'') AND TYPE in (N''U'')) DROP TABLE Scores GO