Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
проверка существования таблицы
|
|||
|---|---|---|---|
|
#18+
Добрый день! Что то я совсем ничего не понимаю... В Sybase ASE 12.5 пишу: if not exists ( select * from dbo.sysobjects where name = 'IMP_DE' and uid = 1 and type = 'U' ) begin .... end else begin .... end Данная таблица существует в базе. если в блоках поставить, скажем, print '...' то все работает, как надо - выполняются операторы второго блока...но если в первом блоке я ставлю create table dbo.IMP_DE (...) пишет, что данный объект уже существует! Ну правильно же, существует, но почему выполняется первая ветка в таком случае. ничего не могу понять, то ли торможу, то ли чего то не допонимаю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2006, 18:23 |
|
||
|
проверка существования таблицы
|
|||
|---|---|---|---|
|
#18+
это не мистика, но нормальная работа оптимизатора. если требуется такая экзотическая работа, как создание постоянной таблицы в сессии (например процедуре), то этот объект должен либо удаляться перед синтаксисом создания, либо создание таблицы надо перетаскивать в другую процедуру. if not exists ( select * from dbo.sysobjects where name = 'IMP_DE' and uid = 1 and type = 'U' ) begin -- create table IMP_DE (a varchar(2)) into qq procedure exec qq print 'not exists' end else begin print "Exists" end ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2006, 18:46 |
|
||
|
проверка существования таблицы
|
|||
|---|---|---|---|
|
#18+
Спасибо! Переписываю скрипты с SQL Server на Sybase, и о таких нюансах не знал... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2006, 18:48 |
|
||
|
проверка существования таблицы
|
|||
|---|---|---|---|
|
#18+
Не понял. А можно весть скрипт, с тем, что в begin\end ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2006, 18:39 |
|
||
|
проверка существования таблицы
|
|||
|---|---|---|---|
|
#18+
Задача была в следующем - проверить есть ли такая таблица, и если нету то создать ее заново, а если есть, то ничего не делать. Поэтому изначально блоков не было - был просто if not exists (...) create table... И это не работало, если таблица уже существует то выдает ошибку - объект уже существует. А блоки добавил просто для проверки: begin print 'not exists' end else begin print "Exists" end Для принтов - все работает нормально, печатает "Exists". Но если в блоках есть create table, то делалась попытка выполнить его в любом случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2006, 20:25 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=34014158&tid=2012559]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 360ms |

| 0 / 0 |
