create一個User Defined Table type,
然後在functionA
中做insert再傳給functionB
,functionB
接的時候寫成@tempTableA
tp_name READONLY
。
如下為原本的問題內容
//-------------------------------------------------
如標題,我想要實作以下功能,目前先寫出一個簡單的示意範例,
但在撰寫的過程中遇到註解標示的問題,請問要怎麼調整呢?
functionA
依照傳入的條件找到結果,並將結果傳給functionBfunctionB
依照傳入的table變數重新賦予欄位名稱,並將結果傳給functionA
create function functionA(
@Type nvarchar(max)
, @isArray bit = 0
)
returns @tempTable table (
FieldId nvarchar(4000)
, FieldName nvarchar(4000)
, FieldType nvarchar(4000)
, IsArray bit)
as
begin
declare @tempTableA table
(
DeclaringType nvarchar(4000)
, FieldName nvarchar(4000)
, FieldValue nvarchar(4000)
)
insert @tempTableA
select
*
from
TableA
where
@isArray = 1 and @Type='TypeA'
insert @tempTable
select * from functionB(@tempTableA)
return
end
go
create function functionB(
--這邊要怎麼接functionA傳入的table變數?
@tempTableA table
)
returns @tempTableB table (
FieldId nvarchar(4000)
, FieldName nvarchar(4000)
, FieldType nvarchar(4000)
, IsArray bit)
as
begin
insert @tempTableB
select
FieldId [Id]
, FieldName [Name]
, FieldType [Type]
, IsArray Array
from
@tempTableA
return
end
go