我在SQL Server中创建了一个用户定义的表类型:
@app.task()
def do_my_task():
那里还有很多其他领域,这只是一个例子。
现在我有一个存储过程,我需要它来返回此类型的Cars列表。问题在于:我找不到从存储过程返回用户定义的表类型的方法。
如果我在程序中将其声明为参数,则必须是只读的,因此我无法为其指定值。如果我从这种类型中声明一个var并尝试从它不允许的过程中返回它。
以下是我的尝试:
Create Type dbo.Car AS Table
(
CarNumber varchar(20) not null,
Model varchar(20) null
)
这样做的正确方法是什么?
答案 0 :(得分:1)
您只能从存储过程中返回表值变量。
正如您所说,如果未将表值参数声明为readonly
,则不能使用表值参数。
在您的简单情况下,您可以使用内联表值函数:
create function getCarDetails( @carNumber varchar(20))
returns table
as
return
select CarNumber, Model
from dbo.cars
where CarNumber = @carNumber;