我有一個函數,並且在這個函數中,我想獲取函數的名字。我能怎麼做?我有嘗試:從自己獲取函數名稱
CREATE FUNCTION dbo.func_test
--....
-- get name function
IF OBJECT_NAME(@@PROCID) LIKE '%_test%'
SELECT @isTest = 1
ELSE
SELECT @isTest = 0
OBJECT_NAME(@@PROCID)
似乎支持存儲過程,無法正常
我有一個函數,並且在這個函數中,我想獲取函數的名字。我能怎麼做?我有嘗試:從自己獲取函數名稱
CREATE FUNCTION dbo.func_test
--....
-- get name function
IF OBJECT_NAME(@@PROCID) LIKE '%_test%'
SELECT @isTest = 1
ELSE
SELECT @isTest = 0
OBJECT_NAME(@@PROCID)
似乎支持存儲過程,無法正常
嘗試用這種
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
OP正在尋找當前正在執行的函數的名稱。你的腳本檢查一個函數是否存在某種特定的模式。這不一樣。 –
如何在我的_inline函數_中嘗試您的代碼? –
只需將我的代碼添加到您的func_test函數中(替換所有內容即可保留簽名以編輯函數)並執行。 –
什麼是你gettinng錯誤,它爲我工作..
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
OP的答案中的鏈接表明該錯誤僅適用於內聯表值函數。這個信息在這個問題上沒有。 –
重複的http://計算器.com/questions/6034488 /當前正在執行的程序名稱 – cameront
我試過了,但沒有正確 –
所以你試了一下,然後呢?錯誤?不正確的結果?如果是的話,返回什麼名字? –