0
以下T-SQL代碼旨在讀取ID並檢查ID是否存在於Table_1中。如果它存在,則UDF Getname3返回一個由該特定ID的所有列組成的表,如果它不存在,我想調用一個名爲m的函數來打印錯誤。但是當我想在Getname3中調用m UDF時會出現問題。我怎樣才能正確調用Getname3中的m。調用函數中的函數在SQL Server中
謝謝
Create function m()
returns nvarchar(max)
as
begin
return cast('Error happened here.' as int);
end
go
Create Function Getname3(@ID nchar(10))
returns @t Table (Melicode nchar(10), Name nvarchar(50), Id nchar(10), Tel nvarchar(max))
AS
Begin
if (exists (select * from Table_1 where Melicode = @ID))
begin
insert @t
select *
from Table_1
where Melicode = @ID
end
else
begin
dbo.m() // PROBLEM Here
end
return
end
go
select *
from dbo.Getname3('0410339127')
這裏有一點性能問題。你已經創建了一個表值函數,但它是一個多語句表值函數。這通常比標量函數慢,但你甚至在這裏有一個。 –
您不應該從一個選擇中獲得不同的結果集。我會處理應用程序層中數據的存在或不存在。 – ewahner