SQL Server 2008中将表作为参数传递给存储过程

在本文中,介绍了如何将表作为参数传递给SQL Server 2008中的存储过程。

要实现这一点,我们创建一个名为EMP的表,然后创建一个用户定义的表类型,然后我们将通过用户定义的表类型作为存储过程的参数。

示例

首先,我们创建一个名为EMP的表。

create table [dbo].[emp]

(

[emp_id] [int] NULL,

[em_name] [varchar](10) NULL

)

创建一个用户定义的表类型,该表类型将作为存储过程中的参数传递。

create type dbo.empType as table

(

[emp_id] [int] ,

[em_name] [varchar](10)

)

创建存储过程

现在创建名为empdetailsprocedure的存储过程。
此存储过程将接受表值参数。

create procedure dbo.empDetailsProcedure

@empDetails dbo.empType readonly

as

begin

set nocount on

insert into dbo.[emp]([emp_id], [em_name])

select [emp_id], [em_name] from @empDetails

end

现在执行存储过程

declare @empVariable as empType

insert into @empVariable([emp_id], [em_name]) values(1,'abc')

exec dbo.empDetailsProcedure @empVariable

现在选择上面插入的数据。

select * from emp
日期:2020-06-02 22:18:05 来源:oir作者:oir