Форум программистов, компьютерный форум, киберфорум
Наши страницы

Microsoft SQL Server

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 152, средняя оценка - 4.64
Axel586
0 / 0 / 0
Регистрация: 22.09.2010
Сообщений: 4
#1

Запрос с параметром - SQL Server

22.09.2010, 22:25. Просмотров 22245. Ответов 9
Метки нет (Все метки)

Здравствуйте, помогите пожалуйста создать запрос с параметром.
Недавно начал изучать SQL Server и не могу понять как передать значение параметра во время выполнения запроса.
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2010, 22:25
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Запрос с параметром (SQL Server):

Запрос с параметром - SQL Server
Добрый день! Как в MS SQL Server реализовать запрос с параметром, чтобы значение для условия отбора задавалось непосредственно во время...

Запрос с параметром - SQL Server
Есть некий запрос...... необходимо: Если к примеру @paramRegion = 220 то в условии where ArreaBAseidAlternateKey = @paramRegion хотелось...

Запрос с параметром (имя таблицы) - Базы данных
Можно ли сделать запрос с параметром, в качестве параметра указать имя таблицы? В Access 97 сделал запрос: PARAMETERS TableName...

Как сделать запрос, что бы найти минимальное число через под ЗАПРОС - SQL Server
Этот запрос у меня считает минимальное время ( сколько часов ведет урок препод), который ведет препод по предметам. Как это сделать...

Sql с параметром - SQL Server
помогите сделать запрос с параметром смотрел на форуме не получается вот таблица для поля Производитель

Помогите создать процедуру с параметром - SQL Server
Нужно создать процедуру с параметром, которая при вводе кода менеджера в процедуру выдает общую сумму поставок, оформленных этим менеджером.

9
Башир
207 / 207 / 1
Регистрация: 18.05.2010
Сообщений: 841
22.09.2010, 22:27 #2
Цитата Сообщение от Axel586 Посмотреть сообщение
как передать значение параметра во время выполнения запроса.
Не совсем понятно? объясните более предметнее на примере что вы хотите.
1
Axel586
0 / 0 / 0
Регистрация: 22.09.2010
Сообщений: 4
22.09.2010, 22:47  [ТС] #3
Запрос:
select ps.[Номер], ps.[Дата] from stack.[Показания счетчиков] ps
where ps.[Дата] = Х
В качестве параметра "Х" надо задать месяц!
0
Башир
207 / 207 / 1
Регистрация: 18.05.2010
Сообщений: 841
22.09.2010, 23:05 #4
Если речь идет строго о запросах внутри SQL без использование среды разработки, например C# или Delphi то вот так
SQL
1
2
3
4
DECLARE @X datetime
SET @X=GETDATE()
SELECT ps.[Номер], ps.[Дата] FROM stack.[Показания счетчиков] ps
WHERE ps.[Дата] =
или если это офоримить как проседуру то
SQL
1
2
3
4
5
CREATE proc SelectWithParam
@X datetime
AS
SELECT ps.[Номер], ps.[Дата] FROM stack.[Показания счетчиков] ps
WHERE ps.[Дата] =
и вызывается проседура
SQL
1
EXEC SelectWithParam getdate()
1
Axel586
0 / 0 / 0
Регистрация: 22.09.2010
Сообщений: 4
22.09.2010, 23:46  [ТС] #5
А еще вопросик для примера с простым селектом значение даты задать не через текущую дату getdate(), а через месяц (например март, через интервал between '01.03.2010' and '31.03.2010')
SQL
1
2
SELECT  ps.[Дата] FROM stack.[Показания счетчиков] ps
WHERE ps.[Дата] BETWEEN @p AND @p1
(можно ли задать значение параметров где-то пред выполнением запроса или значение этих параметров нужно обязательно присваивать после declare?)
0
Башир
207 / 207 / 1
Регистрация: 18.05.2010
Сообщений: 841
23.09.2010, 09:51 #6
Я вам написал простой пример, а уж там вы сами ставте ту дату которая вам нужна
Цитата Сообщение от Axel586 Посмотреть сообщение
можно ли задать значение параметров где-то пред выполнением запроса или значение этих параметров нужно обязательно присваивать после declare?
DECLARE нужно для объявление переменных, можете воспользоватся процедурой. Во первых я вообще не понимаю суть вашей проблемы, объясните до конца что вам нужно. во вторых, вы задаете вопрос в узком месте и мне не понятно зачем вам это. Скажите где и как вы хотите это использовать. И в третьих помоему вам нужно немного почитать про СУБД.
0
Axel586
0 / 0 / 0
Регистрация: 22.09.2010
Сообщений: 4
23.09.2010, 11:50  [ТС] #7
Просто в Oracle параметр запроса объявляется к примеру "= : X" и при выполнении запроса выскакивает окно, где вводится значение переменной. И я вот хочу узнать возможно ли такое в SQL Server или же параметры объявляются только в тексте самого запроса? О_о
0
Башир
207 / 207 / 1
Регистрация: 18.05.2010
Сообщений: 841
23.09.2010, 12:00 #8
Не важно Oracle это или MSSQL в конце концов запросы посылаются с какой то программы написанные на Delphi или С# или в любых других средах разработки. И везде свои особенности использование. вот о чем я вас спрашиваю уже 2-й день.
0
troika
6 / 6 / 2
Регистрация: 06.12.2009
Сообщений: 51
19.12.2011, 16:19 #9
Что бы не создавать схожую новую тему, спрошу тут. Как можно в MsSql передать часть запроса параметром? Т.е. нечто вроде:
SQL
1
2
3
4
CREATE proc SelectWithParam
@dop VARCHAR(100)
AS
SELECT * FROM table1 + @dop
И например вызов:
SQL
1
EXEC SelectWithParam ' where table1.id in (1,2)'
В оракле получилось так:
SQL
1
2
3
4
5
6
7
8
FUNCTION SelectWithParam(dop varchar2) RETURN sys_refcursor
AS
  Res sys_refcursor;
BEGIN
         OPEN Res FOR
            'select * from table1 ' ||p_otd||' ;
          Return Res;
end
В MsSql соединение строк не получилось
0
homich77
77 / 77 / 4
Регистрация: 06.04.2009
Сообщений: 326
19.12.2011, 19:16 #10
Лень было писать маленький пример, кидаю часть кода для понимания:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
CREATE proc pFind
    @TreeFilter INT, --= 871,
    @DatesFrom smalldatetime, --= '2011-10-01',
    @DatesTo smalldatetime, --= '2011-12-01',
    @Dates VARCHAR(MAX) --= '[2011-10-01],[2011-11-01]',
AS
 
    DECLARE @leftkey INT, 
            @rightkey INT,
            @IDEmployee INT, 
            @SQLStr NVARCHAR(MAX)
            
    SELECT @IDEmployee=IDEmployee 
    FROM Employees (NOLOCK) 
    WHERE hostname=CURRENT_USER 
 
    SELECT  @leftkey = leftkey,
            @rightkey = rightkey 
    FROM Tree (NOLOCK) 
    WHERE ID=@TreeFilter 
 
    --select @Dates
    SET @SQLStr = ' select * 
                    from ( 
                        select ..
                        from Employees e (NOLOCK) 
                               where ..
                    ) as p pivot (sum(Payment) for Dates in (' + @Dates + ')) as pvt 
                    order by sort'
    EXEC sp_executesql @SQLStr
    --print @SQLStr
GO
Добавлено через 33 секунды
Другими словами - сначала формируем строку, а потом её вызываем как команду
1
19.12.2011, 19:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2011, 19:16
Привет! Вот еще темы с ответами:

хранимая процедура с выходным параметром - SQL Server
помогите пожалуйста нужна любая хранимая процедура с выходным параметром и как вызвать. Для примера

Конструкция if (условие) then (запрос 1) else (запрос 2) as (имя) - SQL Server
Если такое возможно, то как правильно пишется? (Синтаксис интересует)

Вложенный запрос вернул больше одного значения Это запрещено, когда вложенный запрос следует после =, !=, <, < - SQL Server
Здравствуйте,проблема вот в чем,при добавление записи в таблицу,первая запись добавляется,а при добавление второй выдает что &quot;вложенный...

Имеется две таблицы и необходимо из двух таблиц удалить данные с определенным параметром - SQL Server
Добрый день, вопрос таков. Имеется две таблицы и необходимо из двух таблиц удалить данные с определенным параметром, нечего сложного ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru