Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Select поле по условию существования этого поля  [new]
Pupkin
Member

Откуда:
Сообщений: 106
if exists(select 1 from syscolumns where id=object_id('Stock')and name='Req')
begin
declare c cursor for select StockId,Req from Stock
declare @id int,@re int
open c ...

далее курсор, который правильно и функционально выполняется ...

end

Я ожидаю, что курсор будет молча не выполняться, если поля Reg не существует,
а он ругается:

Msg 207, Level 16, State 1, Line 10
Invalid column name 'Req'.

А как, чтобы молча не выполнялся, если поля Reg не существует
14 фев 17, 17:15    [20211434]     Ответить | Цитировать Сообщить модератору
 Re: Select поле по условию существования этого поля  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36972
Убрать курсор в другой пакет и вызываеть не его, а пакет.
14 фев 17, 17:28    [20211464]     Ответить | Цитировать Сообщить модератору
 Re: Select поле по условию существования этого поля  [new]
Pupkin
Member

Откуда:
Сообщений: 106
Сергей Алексеевич
Убрать курсор в другой пакет и вызываеть не его, а пакет.

Непонятно, что такое другой пакет и его вызов
14 фев 17, 17:46    [20211519]     Ответить | Цитировать Сообщить модератору
 Re: Select поле по условию существования этого поля  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36972
Pupkin
Сергей Алексеевич
Убрать курсор в другой пакет и вызываеть не его, а пакет.

Непонятно, что такое другой пакет и его вызов
Что угодно - процедура, динамический sql и т.п.
14 фев 17, 17:56    [20211550]     Ответить | Цитировать Сообщить модератору
 Re: Select поле по условию существования этого поля  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
Pupkin
Сергей Алексеевич
Убрать курсор в другой пакет и вызываеть не его, а пакет.

Непонятно, что такое другой пакет и его вызов


exec ('пакет')

у вас ошибка происходит на этапе компиляции, а не на этапе выполнения.
14 фев 17, 18:03    [20211566]     Ответить | Цитировать Сообщить модератору
 Re: Select поле по условию существования этого поля  [new]
Владислав Колосов
Member

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

у Вас база раморазвивается, что ли? Сама столбцы создаёт, сама удаляет?
15 фев 17, 10:17    [20212921]     Ответить | Цитировать Сообщить модератору
 Re: Select поле по условию существования этого поля  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
по сабжу: очень плохая практика.

А потом захотите, чтобы молча выполнялось на несуществующей базе ? :)
15 фев 17, 12:01    [20213397]     Ответить | Цитировать Сообщить модератору
 Re: Select поле по условию существования этого поля  [new]
Pupkin
Member

Откуда:
Сообщений: 106
Для самых продвинутых
Владислав Колосов
у Вас база саморазвивается, что ли? Сама столбцы создаёт, сама удаляет?

Не совсем так, но похоже.
Есть куча корпоративных клиентов и рабочая программа (ехешник). У каждого клиента свой
экземпляр базы. Для возможности изменить функционал, существует текстовый файл со
скриптами, встраиваемый в ехешник. (Ехешник и встраивание не обсуждаю). Ехешник
рассылается. Программа стартует, модернизирует скриптами базу и далее по функционалу...
LSV
по сабжу: очень плохая практика.
А потом захотите, чтобы молча выполнялось на несуществующей базе ? :)

Когда я сделаю то, что делаю, я захочу пива попить.

А Вам посоветую еще лет 10-20 покрутиться в IT технологиях, тогда, возможно, можно
будет пообсуждать с Вами о качестве практик.
Сергей Алексеевич и

Вам отдельное спасибо, буду делать динамический exec.

А вообще все понятно, всем спасибо, тему далее не обсуждаю,
всем Свежего, Холодного Пива. От пупа.
15 фев 17, 15:04    [20214374]     Ответить | Цитировать Сообщить модератору
 Re: Select поле по условию существования этого поля  [new]
iljy
Member

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


А че тут обсуждать? Говенная у вас практика. Для решений с меняющейся структурой нормальные люди используют либо XML, либо EAV, т.е. решения, специально для этого предназначенные. Хотя, конечно, удавиться на собственных шнурках вам никто не запретит.
15 фев 17, 15:26    [20214457]     Ответить | Цитировать Сообщить модератору
 Re: Select поле по условию существования этого поля  [new]
Pupkin
Member

Откуда:
Сообщений: 106
iljy
Pupkin,
Говенная у вас практика.
Да, Вы правы, в говенности не сильно разбираюсь.
Догадываюсь - это Ваша прорегатива.
Успехов Вам, удачи!!!
30 май 17, 14:10    [20523475]     Ответить | Цитировать Сообщить модератору
 Re: Select поле по условию существования этого поля  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31355
Pupkin
Я ожидаю, что курсор будет молча не выполняться, если поля Reg не существует,
Я в С++ ожидаю, что выражения, в которых используются несуществующие переменные, будут пропускаться, а он ругается :-(
30 май 17, 14:56    [20523745]     Ответить | Цитировать Сообщить модератору
 Re: Select поле по условию существования этого поля  [new]
Pupkin
Member

Откуда:
Сообщений: 106
alexeyvg
Pupkin
Я ожидаю, что курсор будет молча не выполняться, если поля Reg не существует,
Я в С++ ожидаю, что выражения, в которых используются несуществующие переменные, будут пропускаться, а он ругается :-(
Так пишите на SQL, он не так часто ругается.
А лучше вообще не пишите - точно никто не наругает.
30 май 17, 16:11    [20524217]     Ответить | Цитировать Сообщить модератору
 Re: Select поле по условию существования этого поля  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
DECLARE @Q  nvarchar(max) = 'DECLARE Curr  CURSOR 
 FOR  SELECT NoSuchFiled FROM sys.Objects 
 OPEN Curr 
 Close Curr
 DEALLOCATE Curr

'

 IF EXISTS ( SELECT 1 WHERE 1 = 2) 

 BEGIN 
   EXEC sp_executesql @Q

 END 
30 май 17, 16:55    [20524490]     Ответить | Цитировать Сообщить модератору
 Re: Select поле по условию существования этого поля  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31355
Pupkin
Так пишите на SQL, он не так часто ругается.
Абсолютно так же. И сделать вашу хотелку на T-SQL можно точно так же, как на С++
Это для всех языков одинаково, не встречал исключений.
30 май 17, 17:23    [20524602]     Ответить | Цитировать Сообщить модератору
 Re: Select поле по условию существования этого поля  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
С такими запросами ток на PHP кодить - он все стерпит... если E_STRICT убрать
30 май 17, 17:54    [20524717]     Ответить | Цитировать Сообщить модератору
 Re: Select поле по условию существования этого поля  [new]
Pupkin
Member

Откуда:
Сообщений: 106
Г-да Корифеи
С такими запросами ток на PHP кодить
Всем по теме - спасибо, все понятно, реализовано, счастливо.
Прочим - шли бы вы, ребяты в курилку, Только время жрете на чтиво
31 май 17, 08:40    [20525969]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить