O nome da tabela é Scores
.
É correto fazer o seguinte?
IF EXISTS(SELECT *
FROM dbo.Scores)
DROP TABLE dbo.Scores
sql-server
tsql
tmaster
fonte
fonte
'U'
para o segundo parâmetro aparentemente significa "Procure apenas objetos com esse nome que sejam tabelas". Uma fonte . Portanto,OBJECT_ID('TableName')
não está errado , mas também não é incrivelmente preciso, portanto,'U'
na excelente resposta de @ Martin.No SQL Server 2016, você pode usar
Referência: DROP IF EXISTS - novidade no SQL Server 2016
Em breve, ele estará no Banco de Dados SQL Azure.
fonte
A maneira ANSI SQL / multiplataforma é usar o INFORMATION_SCHEMA , que foi projetado especificamente para consultar metadados sobre objetos nos bancos de dados SQL.
A maioria dos servidores RDBMS modernos fornece, pelo menos, suporte básico a Information_SCHEMA, incluindo: MySQL , Postgres , Oracle , IBM DB2 e Microsoft SQL Server 7.0 (e superior) .
fonte
if exists
ansi é compatível?Já vi tantos que realmente não funcionam. Quando uma tabela temporária é criada, ela deve ser excluída do tempdb!
O único código que funciona é:
fonte
dbo
paratempdb
este trabalho. Eu também gostaria de sugerir a adição do'u'
mencionado nos comentários da resposta aceita. Assim, a completa instrução IF ficaria assim:IF OBJECT_ID('tempdb..#temp', 'U')
No SQL Server 2016 (13.x) e superior
Nas versões anteriores
Você é seu
table type
fonte
Ou:
fonte
if exists (select * from sys.tables where name = 'Scores') drop table Scores
Eu espero que isso ajude:
fonte
Eu escrevi um pouco de UDF que retorna 1 se o argumento for o nome de uma tabela existente, 0 caso contrário:
Para excluir a tabela,
User
se existir, chame-a assim:fonte
Simples é o seguinte:
onde
dbo.TableName
está a sua mesa desejada e 'U' étype
da suatable
.fonte
fonte
Eu uso:
fonte
Existe uma maneira mais fácil
fonte
Uma maneira visual e fácil melhor, se você estiver usando o Visual Studio, basta abrir na barra de menus,
deve abrir como mostrado aqui
Selecione e Clique com o Botão Direito na Tabela que você deseja excluir e exclua. Essa tela deve ser exibida. Clique em Atualizar banco de dados para confirmar.
Esse método é muito seguro, pois fornece feedback e avisa sobre qualquer relação da tabela excluída com outras tabelas.
fonte
SQL
, não relacionada aVisual Studio
. Portanto, esta resposta é irrelevante para esta pergunta.Faça assim, é a maneira mais fácil.
qry
será sua própria consulta, o que você quiser na lista de seleção.fonte