create type mt as table (a int, b int)
以下功能有效:
create function fn2()
returns @mt table (a int, b int)
as
begin
insert into @mt
Select 1, 2
return
end
以下无效:
create function fn2()
returns @mt table mt
as
begin
insert into @mt
Select 1, 2
return
end
关于如何输入' mt'可以用于返回类型?
答案 0 :(得分:0)
来自function.UDTS的cant return UDT可用作存储过程的只读参数。
create function fn2()
returns @mt table (a int, b int)
as
begin
insert into @mt
Select 1, 2
return
end
这是有效的,因为在这里你要返回表变量,第二个原因不起作用,因为你试图返回不可能的表类型。
当您能够完成相同的任务时,我不需要使用表格类型。
您正在以错误的方式使用表类型,使用它的正确方法如下所示:
create type testtype as table
(
id int,
name varchar(100)
);
---stored proc which takes table as param
create proc tvp
@p testtype readonly
as
begin
set nocount on
select * from test1 t
join
@p p1
on p1.id=t.id
end
---now the way to call stored proc
---declare table variable as type of our table type and insert values
declare @p as testtype
insert @p
values
(1,'sateesh')
-----now call stored proc
exec dbo.tvp @p
答案 1 :(得分:0)
:)
create function fn2()
returns table
as
return (Select 1 a, 2 b)