![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание индекса (MSSQL)
mfender © (2009-09-08 11:31:00)Здравствуйте, товарищи!
У меня вопрос: проверяю наличие таблицы в БД, если нет - создаю.
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='NewsFeed_2009')
CREATE TABLE NewsFeed_2009(
OID bigint IDENTITY(1,1) NOT NULL,
pubDate datetime NULL,
Title varchar(255) COLLATE Cyrillic_General_CI_AS NULL,
Description text COLLATE Cyrillic_General_CI_AS NULL,
Category int NULL,
Owner int NULL)
GO
CREATE NONCLUSTERED INDEX pubDate ON NewsFeed_2009 (pubDate ASC) WITH (PAD_INDEX = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX Owner ON NewsFeed_2009 (Owner ASC) WITH (PAD_INDEX = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX Category ON NewsFeed_2009 (Category ASC) WITH (PAD_INDEX = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [PRIMARY]
GO
Так это всё выглядит. Однако, если таблица уже существует, происходит ошибка на стадии создания индексов (они уже существуют). Как проверить их наличие?
Спасибо.
Ega23 (2009-09-08 12:48:00) [1]1. Зачем NONCLUSTERED?
2. Почему нет первичного ключа?
sniknik (2009-09-08 12:06:00) [2]
IF NOT EXISTS (SELECT * FROM sysindexes WHERE Id=OBJECT_ID('NewsFeed_2009') AND Name='pubDate')
CREATE NONCLUSTERED INDEX pubDate ...
mfender (2009-09-08 11:59:00) [3]Ага, разобрался. После условия все действия заключил в BEGIN...END. и всё нормально стало.
Медвежонок Пятачок (2009-09-08 11:53:00) [4]точно так же как и наличие таблицы.