За последние 24 часа нас посетили 17473 программиста и 1707 роботов. Сейчас ищут 1708 программистов ...

MS SQL Server 2000 + PHP: Проверка на существование таблицы

Тема в разделе "MSSQL", создана пользователем snowman89, 7 май 2010.

  1. snowman89

    snowman89 Активный пользователь

    С нами с:
    7 май 2010
    Сообщения:
    13
    Симпатии:
    0
    Адрес:
    Komsomolsk-on-Amur
    Всем привет! Возникла проблема - не знаю как на MS SQL Server 2000 через PHP реализовать код проверки базы данных и содержащихся в ней таблиц на существование. Короче, мне нужна конструкция подобная MySQL: mysql_query("create database IF NOT EXISTS `".$db_name."`;"); (ну и для таблиц соответственно) -- только для MSSQLServer 2k...
    Заранее спасибо ))
     
  2. uri

    uri Активный пользователь

    С нами с:
    3 сен 2009
    Сообщения:
    43
    Симпатии:
    1
    1. На вскидку, скрипт д.б. типа этого (системная табличка sysdatabases хранится в БД master):

    if exists (select * from master..sysdatabases where [name] = 'имя_бд')
    begin
    select 1
    end
    else
    begin
    select 0
    end

    Либо, используя системную хранимую процедуру sp_helpdb (вне зависимости от контекста БД):

    exec sp_helpdb

    вернет список существующих БД

    Либо используй представление информационной схемы:

    select * from INFORMATION_SCHEMA.SCHEMATA [where catalog_name = 'имя_бд' ]

    В квадратных скобках - необязательное условие, без него вернет по 1 записи на существующую БД.

    2. По таблицам БД РЕКОМЕНДУЕТСЯ использовать представления информационной схемы:
    INFORMATION_SCHEMA.TABLES, INFORMATION_SCHEMA.VIEWS, INFORMATION_SCHEMA.VIEW_TABLE_USAGE
    запускаемым в контексте конкретной базы данных
    Хотя можно и напрямую обратиться к системным табличкам, типа sysobjects.
     
  3. snowman89

    snowman89 Активный пользователь

    С нами с:
    7 май 2010
    Сообщения:
    13
    Симпатии:
    0
    Адрес:
    Komsomolsk-on-Amur
    Большое спасибо, буду разбираться...