Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Хочу понять. "Select statement" который меняет серверную логику выполнения скрипта.  [new]
Павел-П
Member

Откуда:
Сообщений: 234
Glory,

не надо обсуждать код приведенного примера.
он просто создан показать поведение, где выполнение просто select statement ведет к изменению результата работы ALTER VIEW.
А то сейчас на меня навесят ярлык, что я таблицы T1 называю.
10 ноя 14, 15:42    [16823122]     Ответить | Цитировать Сообщить модератору
 Re: Хочу понять. "Select statement" который меняет серверную логику выполнения скрипта.  [new]
Glory
Member

Откуда:
Сообщений: 104751
Павел-П
А причем здесь sp_refreshview.

В том, что в моем пример нет никакого select-а

Павел-П
По-моему результат выполнения команды sp_refreshview зависит от результата выполнения команды sp_refreshview.

По-моему, вы по прежнему не понимаете разницы между выполнением запроса и его компиляцией.
10 ноя 14, 15:42    [16823123]     Ответить | Цитировать Сообщить модератору
 Re: Хочу понять. "Select statement" который меняет серверную логику выполнения скрипта.  [new]
Glory
Member

Откуда:
Сообщений: 104751
Павел-П
Я не понимаю Ваш вопрос. Такое ощущение, что вы вырываете фразы из контекста, делаете какиее-то непонятные выподны, а потом еще и вопрос задаете.


Вас удивляет, что запуск select * from dbo.v2 влияет на alter view .

Но вас почему не удивляет, что
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[T1]') AND type in (N'U'))
влияет на DROP TABLE t1
10 ноя 14, 15:45    [16823150]     Ответить | Цитировать Сообщить модератору
 Re: Хочу понять. "Select statement" который меняет серверную логику выполнения скрипта.  [new]
Павел-П
Member

Откуда:
Сообщений: 234
Glory
Павел-П
А причем здесь sp_refreshview.

В том, что в моем пример нет никакого select-а

Павел-П
По-моему результат выполнения команды sp_refreshview зависит от результата выполнения команды sp_refreshview.

По-моему, вы по прежнему не понимаете разницы между выполнением запроса и его компиляцией.


Ну ваш пример абсолютно логичен.
Вы делаете попытку обновить view. Она заваливается. И затем уже при обновлении V2 будет ошибка.
Я не вижу смысла обсуждать Ваш пример. Вы в явном виде сказать обновить view.

А в моем примере вроде бы как select это сделал немного в неявном виде.
10 ноя 14, 15:46    [16823165]     Ответить | Цитировать Сообщить модератору
 Re: Хочу понять. "Select statement" который меняет серверную логику выполнения скрипта.  [new]
Glory
Member

Откуда:
Сообщений: 104751
Павел-П
он просто создан показать поведение, где выполнение просто select statement ведет к изменению результата работы ALTER VIEW.

Да не выполнение. А ОШИБКА чтения метаданных при компиляции запроса
10 ноя 14, 15:47    [16823173]     Ответить | Цитировать Сообщить модератору
 Re: Хочу понять. "Select statement" который меняет серверную логику выполнения скрипта.  [new]
Павел-П
Member

Откуда:
Сообщений: 234
Glory
Павел-П
Я не понимаю Ваш вопрос. Такое ощущение, что вы вырываете фразы из контекста, делаете какиее-то непонятные выподны, а потом еще и вопрос задаете.


Вас удивляет, что запуск select * from dbo.v2 влияет на alter view .

Но вас почему не удивляет, что
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[T1]') AND type in (N'U'))
влияет на DROP TABLE t1


IF EXISTS влияет потому что я сам в явном виде это написал, когда указал IF.
Да, меня удивляет, что выполнение DML-statement-а влияет на результат выполнения DDL.
10 ноя 14, 15:48    [16823185]     Ответить | Цитировать Сообщить модератору
 Re: Хочу понять. "Select statement" который меняет серверную логику выполнения скрипта.  [new]
Glory
Member

Откуда:
Сообщений: 104751
Павел-П
А в моем примере вроде бы как select это сделал немного в неявном виде.

Вместо select может быть и update/delete/merge
Все одно при них произойдет одна и таже ошибка 208

Вот вы знаете например, что при select into тоже возникает ошибка 208 ? Только сервер ее подавляет, потому что в данной команде таблица приемник должна быть создана.
10 ноя 14, 15:51    [16823209]     Ответить | Цитировать Сообщить модератору
 Re: Хочу понять. "Select statement" который меняет серверную логику выполнения скрипта.  [new]
Павел-П
Member

Откуда:
Сообщений: 234
Glory
Павел-П
он просто создан показать поведение, где выполнение просто select statement ведет к изменению результата работы ALTER VIEW.

Да не выполнение. А ОШИБКА чтения метаданных при компиляции запроса


Да я тут с Вами полностью согласен.
ОШИБКА чтения метаданных при компиляции запроса, а запрос в нашем случае select.
10 ноя 14, 15:53    [16823228]     Ответить | Цитировать Сообщить модератору
 Re: Хочу понять. "Select statement" который меняет серверную логику выполнения скрипта.  [new]
Glory
Member

Откуда:
Сообщений: 104751
Павел-П
Да, меня удивляет, что выполнение DML-statement-а влияет на результат выполнения DDL.

Почему вы тогда не проверяете валидность ваших метаданных при ALTER VIEW ?
10 ноя 14, 15:53    [16823232]     Ответить | Цитировать Сообщить модератору
 Re: Хочу понять. "Select statement" который меняет серверную логику выполнения скрипта.  [new]
Павел-П
Member

Откуда:
Сообщений: 234
Glory
Павел-П
Да, меня удивляет, что выполнение DML-statement-а влияет на результат выполнения DDL.

Почему вы тогда не проверяете валидность ваших метаданных при ALTER VIEW ?


Да потому что пример такой. Кстатьи, а как проверить?
10 ноя 14, 15:59    [16823320]     Ответить | Цитировать Сообщить модератору
 Re: Хочу понять. "Select statement" который меняет серверную логику выполнения скрипта.  [new]
Glory
Member

Откуда:
Сообщений: 104751
Павел-П
Да потому что пример такой.

Какой "такой" ?
Как для одних DDL проверяются метаданные, а для других не проверяются и опа, возникает волшебная ошибка ?
10 ноя 14, 16:01    [16823347]     Ответить | Цитировать Сообщить модератору
 Re: Хочу понять. "Select statement" который меняет серверную логику выполнения скрипта.  [new]
Павел-П
Member

Откуда:
Сообщений: 234
Glory
Павел-П
Да потому что пример такой.

Какой "такой" ?
Как для одних DDL проверяются метаданные, а для других не проверяются и опа, возникает волшебная ошибка ?


Пример, который показывает, что выполнение обычного DML statement-а может завалить команду ALTER VIEW, которая до этого успешно выполнялась.
10 ноя 14, 16:07    [16823405]     Ответить | Цитировать Сообщить модератору
 Re: Хочу понять. "Select statement" который меняет серверную логику выполнения скрипта.  [new]
Glory
Member

Откуда:
Сообщений: 104751
Павел-П
которая до этого успешно выполнялась.

Ага, потому что никто даже не подумал, что там что-то нужно проверять.
С такой логикой у вас "неожиданные" ошибки будут в каждом втором запросе.
10 ноя 14, 16:09    [16823431]     Ответить | Цитировать Сообщить модератору
 Re: Хочу понять. "Select statement" который меняет серверную логику выполнения скрипта.  [new]
Павел-П
Member

Откуда:
Сообщений: 234
Glory
Павел-П
которая до этого успешно выполнялась.

Ага, потому что никто даже не подумал, что там что-то нужно проверять.
С такой логикой у вас "неожиданные" ошибки будут в каждом втором запросе.


А подскажите, пжл, как проверить валидность метаданных?
10 ноя 14, 16:11    [16823451]     Ответить | Цитировать Сообщить модератору
 Re: Хочу понять. "Select statement" который меняет серверную логику выполнения скрипта.  [new]
Павел-П
Member

Откуда:
Сообщений: 234
Glory
Павел-П
которая до этого успешно выполнялась.

Ага, потому что никто даже не подумал, что там что-то нужно проверять.
С такой логикой у вас "неожиданные" ошибки будут в каждом втором запросе.


Да я не пользуюсь этой логикой. Просто пример такой увидел.
10 ноя 14, 16:13    [16823466]     Ответить | Цитировать Сообщить модератору
 Re: Хочу понять. "Select statement" который меняет серверную логику выполнения скрипта.  [new]
Glory
Member

Откуда:
Сообщений: 104751
Павел-П
А подскажите, пжл, как проверить валидность метаданных?

Мля.
Решфрешь метаданные прежде, чем что-то делать с ними.
Или не создавай объектов без привязке к схеме.
10 ноя 14, 16:13    [16823470]     Ответить | Цитировать Сообщить модератору
 Re: Хочу понять. "Select statement" который меняет серверную логику выполнения скрипта.  [new]
Павел-П
Member

Откуда:
Сообщений: 234
Glory
Павел-П
А подскажите, пжл, как проверить валидность метаданных?

Мля.
Решфрешь метаданные прежде, чем что-то делать с ними.
Или не создавай объектов без привязке к схеме.


Так рефреш завалится. Ошибку еще отловить надо и проконтролировать.
Про schemabiding все понятно. Он для этого и создан.
10 ноя 14, 16:22    [16823572]     Ответить | Цитировать Сообщить модератору
 Re: Хочу понять. "Select statement" который меняет серверную логику выполнения скрипта.  [new]
Glory
Member

Откуда:
Сообщений: 104751
Павел-П
Так рефреш завалится. Ошибку еще отловить надо и проконтролировать.

А для всех остальных команд типа не надо ничего отлавливать и контролировать ?
10 ноя 14, 16:23    [16823580]     Ответить | Цитировать Сообщить модератору
 Re: Хочу понять. "Select statement" который меняет серверную логику выполнения скрипта.  [new]
Павел-П
Member

Откуда:
Сообщений: 234
Glory
Павел-П
Так рефреш завалится. Ошибку еще отловить надо и проконтролировать.

А для всех остальных команд типа не надо ничего отлавливать и контролировать ?


Мне кажется, что вы неправильно считаете, что для остальных команд не надо ничего отлавливать и контролировать. Не совсем понимаю, почему вы этот вопрос спрашиваете у меня.
Я как раз таки в предыдущем посте написал, что надо отловить и проконтролировать.
10 ноя 14, 16:33    [16823654]     Ответить | Цитировать Сообщить модератору
 Re: Хочу понять. "Select statement" который меняет серверную логику выполнения скрипта.  [new]
Glory
Member

Откуда:
Сообщений: 104751
Павел-П
Я как раз таки в предыдущем посте написал, что надо отловить и проконтролировать.

Ну раз понятно, так делайте, а не пишите очередную "легенду" про то, как селект ломает альтер
10 ноя 14, 16:40    [16823693]     Ответить | Цитировать Сообщить модератору
 Re: Хочу понять. "Select statement" который меняет серверную логику выполнения скрипта.  [new]
Павел-П
Member

Откуда:
Сообщений: 234
Glory
Павел-П
Я как раз таки в предыдущем посте написал, что надо отловить и проконтролировать.

Ну раз понятно, так делайте, а не пишите очередную "легенду" про то, как селект ломает альтер


Подождите, но он ее действительно ломает.
Вот он работает.
Выполняем селект. Не работает.

Я не понимаю, почему Вы называете это легендой.

Мне непонятна Ваша риторика. Вы отрицаете факт, что ALTER VIEW после выполнения select перестал работать?

По вашей легенде он работает?
10 ноя 14, 16:58    [16823816]     Ответить | Цитировать Сообщить модератору
 Re: Хочу понять. "Select statement" который меняет серверную логику выполнения скрипта.  [new]
Glory
Member

Откуда:
Сообщений: 104751
Павел-П
Я не понимаю, почему Вы называете это легендой.

Потому что вы _придумываете_ причинно следственную связь.

Павел-П
По вашей легенде он работает?

По моей легенде у вас говнокод, который не проверяет условия для своей корректной работы.
10 ноя 14, 17:04    [16823867]     Ответить | Цитировать Сообщить модератору
 Re: Хочу понять. "Select statement" который меняет серверную логику выполнения скрипта.  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
что-то столько слов сказано ....
дроп таблицы по моему автоматом должен инвалидировать все производные объекты
хотя теоретически их не все можно вычислить, но явно указанные точно
а уж альтер стопудово должен валидировать без всяких with schemabinding
по моему правильнее чтобы оно биндило по умолчанию
а ежели кому надо то without schemabinding включать
это же не какой-то яваскрипт интерпретируемый
если ты(сервер) компилируешь что-то то проверяй, а иначе какой смысл компилировать
тогда можно тот же код вьюхи в текстовое поле написать и только при обращении компилять
10 ноя 14, 18:02    [16824277]     Ответить | Цитировать Сообщить модератору
 Re: Хочу понять. "Select statement" который меняет серверную логику выполнения скрипта.  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 9155
leov,

с чего Вы решили, что T-SQL - компилируемый?
10 ноя 14, 18:18    [16824377]     Ответить | Цитировать Сообщить модератору
 Re: Хочу понять. "Select statement" который меняет серверную логику выполнения скрипта.  [new]
Павел-П
Member

Откуда:
Сообщений: 234
Glory
Павел-П
Я не понимаю, почему Вы называете это легендой.

Потому что вы _придумываете_ причинно следственную связь.

Павел-П
По вашей легенде он работает?

По моей легенде у вас говнокод, который не проверяет условия для своей корректной работы.


Уже совсем запутался. Т.е. любой код, который не проверяет условия для своей корректной работы - это говно код.
Возьмите у Вас в проекте любую хранимую процедуру. Возьмите таблицу, которая там используется. Удалите ее. Выполните хранимку.
Интересно у вас там стоит проверка корректности условий работы. Это говно код?
10 ноя 14, 18:19    [16824384]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить