C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
IF NOT EXISTS для MSSQL
Tertium
Отправлено: 07.06.2005, 18:25


Машинист паровоза

Группа: Почетный участник
Сообщений: 192



Народ, подскажите эквивалент в MSSQL ключевой фразе из mySQL "IF NOT EXISTS". Она используется в выражениях создания таблиц, чтоб ошибка не вылетала, если таблица есть.
Gedeon
Отправлено: 07.06.2005, 19:41


Ветеран

Группа: Модератор
Сообщений: 1742



IF NOT EXISTS
Tertium
Отправлено: 08.06.2005, 01:21


Машинист паровоза

Группа: Почетный участник
Сообщений: 192



не знаю, справке по MSSQL я этого не нашёл. EXISTS там только к полям применяется, не к созданию таблицы.
В mySQL то что я хочу выглядит так:
SQL
CREATE TABLE IF NOT EXISTS Games (
`game_id` int(4) primary key auto_increment,
`name` char(255) NOT NULL ,
`description` char(255) NULL )


В MSSQL это не проходит.

Так что если есть реально рабочий код под MSSQL с IF NOT EXISTS — пожалте в студию smile.gif

Отредактировано Tertium — 08/06/2005, 01:22
Gedeon
Отправлено: 08.06.2005, 10:22


Ветеран

Группа: Модератор
Сообщений: 1742



Можете вот так сделать
SQL
IF NOT EXISTS (
select * from sysobjects o
where o.name = 'GAMES' and o.type in ('U','S'))
CREATE TABLE GAMES (Id INT primary key, GAME VARCHAR(50))
Tertium
Отправлено: 08.06.2005, 13:14


Машинист паровоза

Группа: Почетный участник
Сообщений: 192



Спасибо. В данном случае можно просто "U", ибо таблица юзерская. Подозревал я, что где-то у него есть таблица о таблицах, подозревал... smile.gifsmile.gif

Кстати, встречный вопрос. А применительно к базам данных? Опять же в mySQL — create database IF NOT EXISTS mydb. А в MSSQL?

PS: ох уж мне эти диалекты smile.gif

Небольшой оффтоп
Кстати, чевой-то с вашим форумом стряслось — не шлёт сообщения об ответах. Какой-то лимит по всем темам вообще? То есть если я создал несколько тем и от одной мне пришёл фидбэк, то от остальных в этот день фидбэка не будет?

Отредактировано Tertium — 08/06/2005, 13:22
Gedeon
Отправлено: 08.06.2005, 13:45


Ветеран

Группа: Модератор
Сообщений: 1742



SQL
select name from master.dbo.sysdatabases
Tertium
Отправлено: 08.06.2005, 19:22


Машинист паровоза

Группа: Почетный участник
Сообщений: 192



спасибо!

Вернуться в Работа с базами данных в C++Builder