В качестве заголовка я написал следующий простой код:
functionA
: передать результат (табличную переменную) в функцию B
functionB
: переназначить имя поля и вернуть результат (табличную переменную) в функцию A
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 (
FieldId nvarchar(4000)
, FieldName nvarchar(4000)
, FieldType nvarchar(4000)
, IsArray bit)
insert @tempTableA
select
*
from
TableA
where
@isArray = 1 and @Type='TypeA'
insert @tempTable
select * from functionB(@tempTableA)
return
end
go
create function functionB(
--How to get the table variable from functionA?
@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
Когда я ожидаю, что функция B получит сообщение об ошибке:
Синтаксис рядом с ключевым словом "таблица" неверен.
Должна быть объявлена переменная таблицы данных "@tempTableB".
Должна быть объявлена переменная таблицы данных "@tempTableA".