Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как правильно создать процедуру с параметром по умолчанию / 6 сообщений из 6, страница 1 из 1
19.09.2002, 15:41:57
    #32051714
Dmitry_L
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно создать процедуру с параметром по умолчанию
Доброго время суток!
Подскажите пожалуйста, есть процедура:

Create Procedure DateTest
@CurDate datetime = GetDate
AS
Print @CurDate

Вызываю ее следующим образом:
EXEC DateTest

Выдается сообщение:
Server: Msg 241, Level 16, State 1, Procedure DateTest, Line 0
Syntax error converting datetime from character string.


Объясните пожалуйста, почему процедура не печатает значение по умолчанию - GetDate(), и как надо ее написать, что бы все работало...
...
Рейтинг: 0 / 0
19.09.2002, 15:47:16
    #32051716
snake
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно создать процедуру с параметром по умолчанию
В качестве значения параметра по умолчанию не использовать функцию GetDate().
...
Рейтинг: 0 / 0
19.09.2002, 15:50:52
    #32051717
Dmitry_L
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно создать процедуру с параметром по умолчанию
Хорошо, а как тогда быть, если требуется задать текущую дату?
...
Рейтинг: 0 / 0
19.09.2002, 15:54:56
    #32051721
snake
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно создать процедуру с параметром по умолчанию
Код: plaintext
1.
2.
3.
4.
5.
Create Procedure DateTest 
@CurDate datetime = NULL
AS 
set @CurDate = GetDate ()
Print @CurDate 
...
Рейтинг: 0 / 0
19.09.2002, 15:56:37
    #32051722
akuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно создать процедуру с параметром по умолчанию
Чтобы не было ошибки
Print @CurDate
Замените на Print CONVERT(varchar,@CurDate)

а по умолчанию NULL

Код: plaintext
1.
2.
3.
4.
Create Procedure DateTest 
@CurDate datetime = NULL
AS 
set @CurDate = ISNULL(@CurDate,GETDATE())
Print CONVERT(varchar,@CurDate)
...
Рейтинг: 0 / 0
19.09.2002, 15:57:37
    #32051723
Dmitry_L
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно создать процедуру с параметром по умолчанию
Пожалуй это самый лучший вариант!

Спасибо!
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как правильно создать процедуру с параметром по умолчанию / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]