您好我们如何向存储过程发送多个uniqueidentifier。
例如:
Create procedure showall
(@empids uniqueidentifier(50) )
as
select * from emp where empid in (@empid)
像这样?
答案 0 :(得分:2)
正如迭戈所提到的,你可以使用表值参数。下面是一个示例,说明如何使用表值参数对内部联接对照传递的列表,从而相应地过滤列表。
create procedure showall
(
@empids uniqueidentifier(50)
,@myTableVariable mySchema.myTableType readonly
)
as
select
*
from
emp e
inner join @myTableVariable m
on e.empids = m.empids
--where
-- empid in ( @empid )
如果您从未使用过表值参数,那么它可能会有点混乱。您需要创建user defined table type。正如创建的部分所示,一旦创建了表结构,您就可以返回,然后将参数类型定义为表值参数。
create type mySchema.myTableName as table
( empids uniqueidentifier)
然后在第一个代码示例中的参数子句中引用它。希望这会有所帮助,它在我第一次使用它时会让我感到困惑,但它确实可以很方便并减少应用程序的行程。
答案 1 :(得分:0)
多个参数可以作为逗号(或任何其他符号)分隔的字符串传递,然后在proc中处理或作为table-valued parameter
处理