До сих пор я использовал приведенный ниже формат для создания / обновления таблиц
IF EXISTS (SELECT 1 FROM sysobjects WHERE name = 'table_name' AND type = 'U')
DROP TABLE [dbo].[table_name]
GO
CREATE TABLE [dbo].[table_name]()
GO
Но недавно я столкнулся со случаем, когда две схемы имеют таблицу с одинаковым именем.Как я могу проверить, существует ли таблица в определенной схеме?Это только часть SELECT 1 FROM sysobjects WHERE name = 'table_name' AND type = 'U'
, которая нуждается в исправлении, остальное я изменил на:
IF EXISTS (SELECT 1 FROM sysobjects WHERE name = 'table_name' AND type = 'U')
DROP TABLE [schema_name].[table_name]
GO
CREATE TABLE [schema_name].[table_name]()
GO
Моя текущая версия сервера 2008R2
, поэтому я бы предпочел ответы, которые также работают для этой версии.У меня есть много других проверок, сделанных таким образом, поэтому я не хочу полностью менять этот шаблон.