用视图 create view TT as select getdate() as date select * from TT
--在试图中建一个 SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GOCREATE VIEW dbo.V_getdate AS SELECT GETDATE() AS Expr1GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO --然后在函数中调用 select * from dbo.V_getdate goCREATE FUNCTION [dbo].[selgetdte] () RETURNS datetime AS BEGIN declare @str datetime set @str=(select * from dbo.V_getdate) return @str END select dbo.selgetdte()
刚试过了,二位的方法可以实现我的要求,先谢谢了。 不过,这样的间接调用会不会产生什么“副作用”呢?SQL Server 2000的联机丛书中,这样提到:函数的确定性和副作用 函数可以是确定的或不确定的。如果任何时候用一组特定的输入值调用函数时返回的结果总是相同的,则这些函数为确定的。如果每次调用函数时即使用的是相同的一组特定输入值,返回的结果总是不同的,则这些函数为不确定的。不确定的函数会产生副作用。副作用是更改数据库的某些全局状态,比如更新数据库表或某些外部资源,如文件或网络等(例如,修改文件或发送电子邮件消息)。不允许在用户定义函数主体中内置不确定函数。(GETDATE就属于这种不确定函数)
create view TT
as
select getdate() as date
select * from TT
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GOCREATE VIEW dbo.V_getdate
AS
SELECT GETDATE() AS Expr1GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
--然后在函数中调用
select * from dbo.V_getdate
goCREATE FUNCTION [dbo].[selgetdte] ()
RETURNS datetime AS
BEGIN
declare @str datetime
set @str=(select * from dbo.V_getdate)
return @str
END
select dbo.selgetdte()
不过,这样的间接调用会不会产生什么“副作用”呢?SQL Server 2000的联机丛书中,这样提到:函数的确定性和副作用
函数可以是确定的或不确定的。如果任何时候用一组特定的输入值调用函数时返回的结果总是相同的,则这些函数为确定的。如果每次调用函数时即使用的是相同的一组特定输入值,返回的结果总是不同的,则这些函数为不确定的。不确定的函数会产生副作用。副作用是更改数据库的某些全局状态,比如更新数据库表或某些外部资源,如文件或网络等(例如,修改文件或发送电子邮件消息)。不允许在用户定义函数主体中内置不确定函数。(GETDATE就属于这种不确定函数)