User Defined Functions (MS SQL 2000)
От: nim  
Дата: 20.07.04 06:53
Оценка:
Hello!
Можно ли каким-то образом получить значение текущей даты и времени в User Defined Functions? Если можно то как?
Заранее благодарен
Re: User Defined Functions (MS SQL 2000)
От: KGP http://kornilow.newmail.ru
Дата: 20.07.04 07:05
Оценка:
Здравствуйте, nim, Вы писали:

Так как
[msdn]
Although nondeterministic functions are not allowed in the body of user-defined functions, these user-defined functions still can cause side effects if they call extended stored procedures.

Functions that call extended stored procedures are considered nondeterministic because extended stored procedures can cause side effects on the database. When user defined functions call extended stored procedures that can have side effects on the database, do not rely on a consistent result set or execution of the function.
[/msdn]
то предлагаю создать таблицу, куда через процедуру записывать данные, которые потом использовать ...
... << RSDN@Home 1.1.2 stable >>
Re: User Defined Functions (MS SQL 2000)
От: andsm Россия  
Дата: 20.07.04 07:09
Оценка: :)
Здравствуйте, nim, Вы писали:

nim>Hello!

nim>Можно ли каким-то образом получить значение текущей даты и времени в User Defined Functions? Если можно то как?
nim>Заранее благодарен

GetDate()
Re[2]: User Defined Functions (MS SQL 2000)
От: nim  
Дата: 20.07.04 07:09
Оценка:
Здравствуйте, KGP, Вы писали:

KGP>Здравствуйте, nim, Вы писали:


KGP>Так как

KGP>[msdn]
KGP>Although nondeterministic functions are not allowed in the body of user-defined functions, these user-defined functions still can cause side effects if they call extended stored procedures.

KGP>Functions that call extended stored procedures are considered nondeterministic because extended stored procedures can cause side effects on the database. When user defined functions call extended stored procedures that can have side effects on the database, do not rely on a consistent result set or execution of the function.

KGP>[/msdn]
KGP>то предлагаю создать таблицу, куда через процедуру записывать данные, которые потом использовать ...

Да. До такого способа и я дошел. Но криво-ж как.....
Re[2]: User Defined Functions (MS SQL 2000)
От: nim  
Дата: 20.07.04 07:26
Оценка:
Здравствуйте, andsm, Вы писали:

A>Здравствуйте, nim, Вы писали:


nim>>Hello!

nim>>Можно ли каким-то образом получить значение текущей даты и времени в User Defined Functions? Если можно то как?
nim>>Заранее благодарен

A>
A>GetDate()
A>


Цитата из BOL

Built-in functions that can return different data on each call are not allowed in user-defined functions. The built-in functions not allowed in user-defined functions are:

@@CONNECTIONS
@@PACK_SENT
GETDATE
@@CPU_BUSY
@@PACKET_ERRORS
GetUTCDate
@@IDLE
@@TIMETICKS
NEWID
@@IO_BUSY
@@TOTAL_ERRORS
RAND
@@MAX_CONNECTIONS
@@TOTAL_READ TEXTPTR
@@PACK_RECEIVED
@@TOTAL_WRITE
Re[3]: User Defined Functions (MS SQL 2000)
От: TK Лес кывт.рф
Дата: 20.07.04 08:38
Оценка:
Здравствуйте, nim, Вы писали:

KGP>>то предлагаю создать таблицу, куда через процедуру записывать данные, которые потом использовать ...

nim>Да. До такого способа и я дошел. Но криво-ж как.....

Только можно не таблицу, а VIEW с текущей датой
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re: User Defined Functions (MS SQL 2000)
От: FantomGood Украина  
Дата: 20.07.04 14:34
Оценка:
Здравствуйте, nim, Вы писали:

nim>Hello!

nim>Можно ли каким-то образом получить значение текущей даты и времени в User Defined Functions? Если можно то как?
nim>Заранее благодарен

пишем пользовательску скалярную функцию с использованием запроса
1) запрос

CREATE VIEW dbo.GetDateNew
AS
SELECT     GETDATE() AS DateNow


2) создаем пользовательскую скалярную функция

CREATE FUNCTION dbo.f_GetDate()
RETURNS datetime
AS
    BEGIN
    declare @dateN datetime
        SELECT  @dateN =   DateNow
        FROM         dbo.GetDateNew
    RETURN @dateN 
    END

и используем везде вместо GetDate() — dbo.f_GetDate()

Re[2]: User Defined Functions (MS SQL 2000)
От: nim  
Дата: 21.07.04 08:08
Оценка:
Здравствуйте, FantomGood, Вы писали:

FG>Здравствуйте, nim, Вы писали:


nim>>Hello!

nim>>Можно ли каким-то образом получить значение текущей даты и времени в User Defined Functions? Если можно то как?
nim>>Заранее благодарен

FG>пишем пользовательску скалярную функцию с использованием запроса

FG>1) запрос

FG>
FG>CREATE VIEW dbo.GetDateNew
FG>AS
FG>SELECT     GETDATE() AS DateNow
FG>


FG>2) создаем пользовательскую скалярную функция


FG>
FG>CREATE FUNCTION dbo.f_GetDate()
FG>RETURNS datetime
FG>AS
FG>    BEGIN
FG>    declare @dateN datetime
FG>        SELECT  @dateN =   DateNow
FG>        FROM         dbo.GetDateNew
FG>    RETURN @dateN 
FG>    END
FG>

FG>и используем везде вместо GetDate() — dbo.f_GetDate()

FG>


Спасибо. Так пришлось и поступить
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.