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

Откуда: Новосибирск
Сообщений: 75
Здравствуйте!
Имеется MS SQL Server 2005 Express Edition.
Возможно ли задать таблице какое-то условие "по умолчанию", без определения соответствующих VIEW? Например:
CREATE TABLE temp (param int, value int)
GO
INSERT INTO temp VALUES (1, 1)
INSERT INTO temp VALUES (2, 2)
INSERT INTO temp VALUES (3, 3)
INSERT INTO temp VALUES (1, 4)
INSERT INTO temp VALUES (1, 5)
INSERT INTO temp VALUES (2, 1)

Если задать следующий запрос: SELECT * FROM temp WHERE value=1 Будут выданы две записи:
(1,1) и (2,1)
Но если применить условие по умолчанию param=1, то при выполнении вышеозначенного селекта, будет возвращена только одна запись: (1, 1). Соответственно запрос SELECT * FROM temp вернёт три записи: (1,1), (1,4) и (1,5)
Возможно ли сделать такое? Если "Да" то как?
==
А баги ползали и нагло шевелили усами... (с) Не моё.
9 ноя 09, 11:21    [7900347]     Ответить | Цитировать Сообщить модератору
 Re: Возможно ли задать условие WHERE "по умолчанию"?  [new]
Sinner
Member

Откуда:
Сообщений: 453
никакие условия на выборку в таблице ввести нельзя
она для хранения данных, за выборку отвечает select
из таблицы => view или procedure, которые делают select
А чем так view не угодил?

_________________________________________
Спасибо за понимание.
9 ноя 09, 11:28    [7900393]     Ответить | Цитировать Сообщить модератору
 Re: Возможно ли задать условие WHERE "по умолчанию"?  [new]
baracs
Member

Откуда: Москва
Сообщений: 7198
Harlan,

Ну а остальные строки вы как, тогда, собираетесь вытаскивать из этой таблицы?

P.S. View с параметрами - это Inline Table-valued Functions...
9 ноя 09, 11:30    [7900403]     Ответить | Цитировать Сообщить модератору
 Re: Возможно ли задать условие WHERE "по умолчанию"?  [new]
DENIS_CHEL
Member

Откуда:
Сообщений: 23097
Не очень понял в чем трудность у ТС, но надеюсь, он знаком с такой конструкцией?

DECLARE @param int

SELECT * FROM temp WHERE ([param]=@param OR @param IS NULL)

SET @param=1

SELECT * FROM temp WHERE ([param]=@param OR @param IS NULL)


---------------------------------------------------------
- Ну вы тут и нафлудили! - сказал Геракл, зайдя на Авгиев форум..
9 ноя 09, 11:34    [7900420]     Ответить | Цитировать Сообщить модератору
 Re: Возможно ли задать условие WHERE "по умолчанию"?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Harlan
Здравствуйте!
Имеется MS SQL Server 2005 Express Edition.
Возможно ли задать таблице какое-то условие "по умолчанию", без определения соответствующих VIEW?

Сервер сам по себе одни запросы к таблице на другие менять не будет. Нет такой опции
9 ноя 09, 11:36    [7900431]     Ответить | Цитировать Сообщить модератору
 Re: Возможно ли задать условие WHERE "по умолчанию"?  [new]
Влом регистрироваться
Guest
Harlan,

UDF, View и т.д.
9 ноя 09, 11:45    [7900489]     Ответить | Цитировать Сообщить модератору
 Re: Возможно ли задать условие WHERE "по умолчанию"?  [new]
Harlan
Member

Откуда: Новосибирск
Сообщений: 75
Да это всё я в курсе. и UDF, и VIEW, и конструкции в стиле DENIS_CHEL (это не попытка наехать :)
Посто стало интересно. В какой-то СУБД (вроде PostgreSQL, но не уверен) видел такую возможность. Подумал - может и MS SQL так умеет. Но, видимо, не судьба. :)
==
А баги ползали и нагло шевелили усами... (с) Не моё.
9 ноя 09, 11:50    [7900524]     Ответить | Цитировать Сообщить модератору
 Re: Возможно ли задать условие WHERE "по умолчанию"?  [new]
Влом регистрироваться
Guest
Harlan,

Trigger On Select?
MSSQL не имеет.
9 ноя 09, 12:01    [7900617]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить