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

Откуда:
Сообщений: 46
Доброго времени суток.
Вопрос больше теоретический. Возможно ли в хранимой процедуре сделать что-то вроде чекбокса (флажка), с выбором необходимых полей?
Имеется таблица, допустим, с полями [num],[data],[sale],[nomen],[quant].... В процедуре предоставлялся бы выбор вывода полей из списка.
Заранее благодарю.
28 окт 19, 00:57    [22003817]     Ответить | Цитировать Сообщить модератору
 Re: Включение/выключение полей в процедуре  [new]
Андрей Юниор
Member

Откуда: Москва
Сообщений: 471
Ну да. Вы можете задать для параметров значения по умолчанию (например, null). А дальше простым IF проверять всё, что захотите.
28 окт 19, 01:21    [22003825]     Ответить | Цитировать Сообщить модератору
 Re: Включение/выключение полей в процедуре  [new]
Earl11
Member

Откуда:
Сообщений: 46
Андрей Юниор,
Немного не понял, как это сделать?

CREATE PROCEDURE S
iif(...)
AS
BEGIN

Так?
28 окт 19, 10:45    [22003988]     Ответить | Цитировать Сообщить модератору
 Re: Включение/выключение полей в процедуре  [new]
Андрей Юниор
Member

Откуда: Москва
Сообщений: 471
Например, так:
CREATE PROCEDURE [dbo].[DoSomething] @param1 INT = NULL, -- этот параметр можно не указывать при вызове процедуры
                                     @param2 INT = NULL, -- этот параметр можно не указывать при вызове процедуры
                                     @param3 INT -- этот параметр нужно указать для вызова процедуры
AS
BEGIN
    IF (@param1 IS NULL AND @param2 IS NOT NULL)
        BEGIN
            PRINT 'ERROR. @param2 must be null, if @param1 is null.'
            RETURN (1)
        END
    ELSE
        BEGIN
            PRINT 'SUCCESS. All params are correct.'
            RETURN (0)
        END
END
28 окт 19, 11:31    [22004026]     Ответить | Цитировать Сообщить модератору
 Re: Включение/выключение полей в процедуре  [new]
Владислав Колосов
Member

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

для выборки используйте функции, а не процедуры.
28 окт 19, 13:45    [22004203]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить