Проверка на существование таблицы sql

Я хотел бы, чтобы это было окончательное обсуждение того, как проверить, существует ли таблица в SQL Server 2000/2005 с помощью инструкции SQL.

когда вы Google для ответа, вы получите столько разных ответов. Есть ли официальный / назад и вперед совместимый способ сделать это?

здесь два возможных способа сделать это. Какой из них является стандартным / лучшим способом сделать это?

в MySQL обеспечивает простой

заявление. Я ищу нечто подобное.

22 ответов

для таких запросов всегда лучше использовать INFORMATION_SCHEMA вид. Эти представления (в основном) стандартны для многих различных баз данных и редко меняются от версии к версии.

чтобы проверить, существует ли таблица, используйте:

также обратите внимание, что если по какой-либо причине вам нужно проверить временную таблицу, вы можете сделать это:

мы всегда использовать OBJECT_ID стиль, сколько я помню

пожалуйста, смотрите ниже подходы,

подход 1: Использование INFORMATION_SCHEMA.Вид таблиц

мы можем написать запрос, как показано ниже, чтобы проверить, существует ли таблица Customers в текущей базе данных.

подход 2: Использование функции OBJECT_ID ()

мы можем использовать функцию OBJECT_ID (), как показано ниже, чтобы проверить, существует ли таблица Customers в текущей базе данных.

Подход 3: Использование системный.Просмотр Каталога Объектов

мы можем использовать Sys.Посмотреть каталог объектов для проверки существования таблицы, как показано ниже:

подход 4: Использование sys.Вид Каталога Таблиц

мы можем использовать Sys.Представление каталога таблиц для проверки существования таблицы, как показано ниже:

подход 5: Избегайте использования sys.системной таблице sysobjects таблице

мы должны избегать использования sys.системной таблице sysobjects стол непосредственно прямой доступ к нему будет устаревшим в некоторых будущих версиях Sql Server. Согласно ссылке Microsoft BOL, Microsoft предлагает использовать представления каталога sys.объекты/системы.таблицы вместо sys.системная таблица sysobjects напрямую.

Читайте также  Почему не работает телевидение мгтс

Добрый День, Задача такова проверить наличие таблицы в базе данных максимально простым методом и не в коем случае не загружая процесс! Я гуглил но на форумах кроме как

ничего посоветовать толком не могут либо совсем уж огроменные конструкции в 10 строк, не ужели нету в php простой команды типа

если нет такого варианта то я воспользуюсь вещами с формов, зарание спасибо!

6 ответов 6

Выборка из таблицы может приводить к ошибочному срабатыванию, если таблица пустая.

Мой выбор — SHOW TABLES при обязательном использовании подготовки (prepare) запросов во избежание sql-инъекций, если исходное имя таблицы хранится в переменной. Псевдокод, возможны опечатки — не протестировал, лишь пишу логику.

То, что обычно подобные запросы занимают много строк, на мой взгляд, связано как раз-таки с проблемами, вызванными возможными sql-инъекциями. Если Вы не знаете что это такое, просто набейте в Google.

Monday, December 14, 2009

Проверка на существование таблиц и других объектов баз данных MS SQL

Проверка на существование таблиц, хранимых процедур, видов, функций и даже ключей основана на выборках из таблицы, а точнее вида (View), под названием sysobjects.

Вот пример функции, проверяющей существование таблицы в базе данных:

Если в условии выборки по столбцу xtype значение ‘U’ заменить на ‘V’ — получим проверку на существование вида

Далее, проверка на существование функций:

Проверка на существование процедуры:

1 comment:

ALTER FUNCTION [dbo].[is_procedure_exists]
(
@procedure_name varchar(50)
)
RETURNS bit
AS
BEGIN
IF OBJECT_ID(@procedure_name, ‘P’) > 0
RETURN 1

Существование любого объекта в БД можно проверить функцией OBJECT_ID(‘имя_объекта’), возвращает идентификатор объекта, если возвращается значение, отличное от NULL, то объект существует.

Ссылка на основную публикацию
Adblock
detector