摘:
有时为了方便,
有些语句是不方便通过存储过程来完成。
但函数又不能访问诸如getdate(),@@spid等结果不确认的内置函数。本人提供一变通解决方法,以getdate为例,通过视图来解决这个问题:
---------------------------------------------------------------
create view v_getdate
as
select * from (select cast(getdate() as datetime) as output) as a
go
---------------------------------------------------------------
create function f_getdate()
returns datetime
as
begin
declare @n datetime
select @n = output from v_getdate
return(@n)
end
go
---------------------------------------------------------------调用:select dbo.f_getdate()
有时为了方便,
有些语句是不方便通过存储过程来完成。
但函数又不能访问诸如getdate(),@@spid等结果不确认的内置函数。本人提供一变通解决方法,以getdate为例,通过视图来解决这个问题:
---------------------------------------------------------------
create view v_getdate
as
select * from (select cast(getdate() as datetime) as output) as a
go
---------------------------------------------------------------
create function f_getdate()
returns datetime
as
begin
declare @n datetime
select @n = output from v_getdate
return(@n)
end
go
---------------------------------------------------------------调用:select dbo.f_getdate()
解决方案 »
- 哪有学习sqlserver存储过程的教程
- mysql 增量备份文件bin-log
- 一个像二叉树的SQL查询,请高手帮忙!
- 如何按 列數 把excel數據導入 sql server 2000 數據庫表!
- [在线等]sql查询分析器 无法插入数据
- 主从表应该如何关联啊?
- 在SQL SERVER 2005 中,数据被置为可疑,如何解决?急(已在网上找了一些办法,未果!)
- 面对数据量 亿/周 这样可怕的单表应该怎么办(SQL05)
- 误删除数据的完整恢复问题
- 怎样不通过ACCESS本身的菜单的“压缩与修复数据库”来实现类似功能
- 急!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 十万火急!!!!!各位大虾,救救救
@@TOTAL_ERRORS
@@CPU_BUSY
@@TOTAL_READ
@@IDLE
@@TOTAL_WRITE
@@IO_BUSY
@@MAX_CONNECTIONS
@@PACK_RECEIVED
@@PACK_SENT
@@PACKET_ERRORS T
@@TIMETICKS
GETDATE
GETUTCDATE
NEWID
RAND
EXTPTR
尽管在用户定义函数主体中不允许有不确定函数,这些用户定义函数在调用扩展存储过程时仍会产生副作用。由于扩展存储过程会对数据库产生副作用,因此调用扩展存储过程的函数是不确定的。当用户定义函数调用会对数据库产生副作用的扩展存储过程时,不要指望结果集保持一致或执行函数。
gocreate function 函数名()
returns datetime
as
begin
return (select * from mygetdate)
end
go
select dbo.函数名() 结果