我有一个函数,在这个函数里面,我想得到函数的名字。我能怎么做?我试过了:
CREATE FUNCTION dbo.func_test
--....
-- get name function
IF OBJECT_NAME(@@PROCID) LIKE '%_test%'
SELECT @isTest = 1
ELSE
SELECT @isTest = 0
OBJECT_NAME(@@PROCID)
似乎是支持商店程序,而不是功能
答案 0 :(得分:0)
这是SQL Server的bug。
也许我用其他方式
答案 1 :(得分:0)
试试这个
DECLARE @isTest INT
IF EXISTS (
SELECT 1 FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE = 'FUNCTION' AND ROUTINE_NAME LIKE '%_test%')
BEGIN
SELECT @isTest = 1
END
ELSE
BEGIN
SELECT @isTest = 0
END
SELECT @isTest
答案 2 :(得分:0)
你得到的错误是什么,对我有用..
alter function dbo.uspo_test ()
returns int
as
begin
declare @name varchar(20)
set @name=object_name(@@procid)
if (@name) like '%_test'
return 1
return 0
end
select dbo.uspo_test ()
--output 1