powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ошибка Incorrect syntax near ';
9 сообщений из 9, страница 1 из 1
Ошибка Incorrect syntax near ';
    #39622531
Dr.Livsi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Есть запрос

USE KIS_VIEW
GO

DECLARE @catalog nvarchar(300);
DECLARE @schema nvarchar(300);
DECLARE @name nvarchar(300);
DECLARE @definition nvarchar(300);
DECLARE @option nvarchar(300);
DECLARE @updatatable nvarchar(300);

DECLARE cur CURSOR FOR
SELECT
*
FROM
INFORMATION_SCHEMA.VIEWS;
OPEN cur;
FETCH NEXT FROM cur INTO @catalog, @schema, @name, @definition, @option, @updatatable;
EXECUTE('IF OBJECT_ID(''' + @name + ''') IS NOT NULL DROP VIEW ' + @name + ';');
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM cur INTO @catalog, @schema, @name, @definition, @option, @updatatable;
EXECUTE('IF OBJECT_ID(''' + @name + ''') IS NOT NULL DROP VIEW ' + @name + ';');
END
CLOSE cur;
DEALLOCATE cur;
GO

При попытке выполнить его в MSSMS получаю ошибку.

Сообщение 102, уровень 15, состояние 1, строка 3
Incorrect syntax near ';'.


Хотя по документации на msdn вроде все корректно, синтаксис контроль проходит.
Подскажите, пожалуйста, где именно ошибка.
...
Рейтинг: 0 / 0
Ошибка Incorrect syntax near ';
    #39622546
iiyama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr.Livsi,

замените Execute на print и посмотрите на команду который формирует Ваш DSQL
...
Рейтинг: 0 / 0
Ошибка Incorrect syntax near ';
    #39622551
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr.Livsi,

1. зачем 2 раза одно и тоже?
2. 1й вызов из за пустого курсора даст ошибку
...
Рейтинг: 0 / 0
Ошибка Incorrect syntax near ';
    #39622555
Kopelly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK,

По-моему последний шаг цикла не получит данные из курсора, но попытается выполнить EXECUTE(...)
...
Рейтинг: 0 / 0
Ошибка Incorrect syntax near ';
    #39622557
Kopelly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr.Livsi,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
OPEN cur;
FETCH NEXT FROM cur INTO @catalog, @schema, @name, @definition, @option, @updatatable;
WHILE @@FETCH_STATUS = 0
BEGIN
	EXECUTE('IF OBJECT_ID(''' + @name + ''') IS NOT NULL DROP VIEW ' + @name + ';'); 
	FETCH NEXT FROM cur INTO @catalog, @schema, @name, @definition, @option, @updatatable;
END
CLOSE cur;
...
Рейтинг: 0 / 0
Ошибка Incorrect syntax near ';
    #39622558
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KopellyTaPaK,

По-моему последний шаг цикла не получит данные из курсора, но попытается выполнить EXECUTE(...)
угу, там весь порядок не в дугу :) ну и 2 fetch писать тоже не кошерно, не считая 2 exec :)
...
Рейтинг: 0 / 0
Ошибка Incorrect syntax near ';
    #39622561
Попорбуйте так:


DECLARE @catalog nvarchar(300);
DECLARE @schema nvarchar(300);
DECLARE @name nvarchar(300);
DECLARE @definition nvarchar(300);
DECLARE @option nvarchar(300);
DECLARE @updatatable nvarchar(300);

DECLARE cur CURSOR FOR
SELECT
*
FROM
INFORMATION_SCHEMA.VIEWS;
OPEN cur;
FETCH NEXT FROM cur INTO @catalog, @schema, @name, @definition, @option, @updatatable;

WHILE @@FETCH_STATUS = 0
BEGIN

EXECUTE('IF OBJECT_ID(''' + @name + ''') IS NOT NULL DROP VIEW ' + @name + ';');
FETCH NEXT FROM cur INTO @catalog, @schema, @name, @definition, @option, @updatatable;

END
CLOSE cur;
DEALLOCATE cur;


В вашем случае если "SELECT * FROM INFORMATION_SCHEMA.VIEWS" не отдает строк, то все равно выполняется код EXECUTE() с параметром null
...
Рейтинг: 0 / 0
Ошибка Incorrect syntax near ';
    #39622578
Dr.Livsi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот вы меня сейчас прям растоптали интеллектом :)
T`SQL я знаю посредственно. Поэтому чувствую, что по каждому ответу меня ждет долгое путешествие по msdn :)
Всем большое спасибо за ответы.
...
Рейтинг: 0 / 0
Ошибка Incorrect syntax near ';
    #39622580
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr.LivsiВот вы меня сейчас прям растоптали интеллектом :)
T`SQL я знаю посредственно. Поэтому чувствую, что по каждому ответу меня ждет долгое путешествие по msdn :)
Всем большое спасибо за ответы.
действительно, ведь первое что пишут на sql это гроханье всех представлений
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ошибка Incorrect syntax near ';
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]