Имя таблицы Scores
.
Правильно ли делать следующее?
IF EXISTS(SELECT *
FROM dbo.Scores)
DROP TABLE dbo.Scores
sql-server
tsql
tmaster
источник
источник
'U'
для второго параметра очевидно означает «искать только объекты с этим именем, которые являются таблицами». Один источник . ТакOBJECT_ID('TableName')
что не ошибаюсь , но и не безумно точен, поэтому'U'
в превосходном ответе @ Martin.С SQL Server 2016 вы можете использовать
Ссылка: DROP IF EXISTS - новое в SQL Server 2016
Это будет в базе данных SQL Azure в ближайшее время.
источник
ANSI SQL / кроссплатформенный способ заключается в использовании INFORMATION_SCHEMA , который был специально разработан для запроса метаданных об объектах в базах данных SQL.
Большинство современных серверов RDBMS обеспечивают, по крайней мере, базовую поддержку INFORMATION_SCHEMA, включая: MySQL , Postgres , Oracle , IBM DB2 и Microsoft SQL Server 7.0 (и выше) .
источник
if exists
Соответствует ли ANSI?Видел так много, что на самом деле не работает. когда временная таблица создана, она должна быть удалена из базы данных tempdb!
Единственный код, который работает:
источник
dbo
наtempdb
эту работу. Я также хотел бы предложить добавить,'u'
как указано в комментариях принятого ответа. Таким образом, полное утверждение IF будет выглядеть так:IF OBJECT_ID('tempdb..#temp', 'U')
В SQL Server 2016 (13.x) и выше
В более ранних версиях
Ты твой
table type
источник
Или:
источник
if exists (select * from sys.tables where name = 'Scores') drop table Scores
Надеюсь, это поможет:
источник
Я написал небольшой UDF, который возвращает 1, если его аргумент является именем существующей таблицы, 0 в противном случае:
Чтобы удалить таблицу,
User
если она существует, назовите ее так:источник
Все просто:
где
dbo.TableName
находится нужная таблица и «U» являетсяtype
из вашихtable
.источник
источник
Я использую:
источник
Есть более простой способ
источник
Лучший визуальный и простой способ, если вы используете Visual Studio, просто откройте в строке меню,
он должен открыться как показано здесь
Выберите и щелкните правой кнопкой мыши таблицу, которую хотите удалить, затем удалите. Такой экран должен отображаться. Нажмите Обновить базу данных, чтобы подтвердить.
Этот метод очень безопасен, так как дает обратную связь и предупреждает о любых отношениях удаленной таблицы с другими таблицами.
источник
SQL
, не связан сVisual Studio
. Поэтому этот ответ не имеет отношения к этому вопросу.Делать так, это самый простой способ.
qry
будет ваш собственный запрос, что вы хотите в списке выбора.источник