Sql server 2008 从Access执行SQL Server 2008存储过程,并传递表变量

Sql server 2008 从Access执行SQL Server 2008存储过程,并传递表变量,sql-server-2008,ms-access,stored-procedures,table-variable,pass-through,Sql Server 2008,Ms Access,Stored Procedures,Table Variable,Pass Through,我需要从Access向SQL server传递一个表并执行一个存储过程 我正在Access中使用传递查询来完成此操作 我的直通查询: DECLARE @MyVar TABLE { .....<variables> } INSERT INTO @MyVar SELECT * FROM [MyTable] EXEC sproc_test @Myvar DECLARE@MyVar表{….} 插入@MyVar SELECT* 从[MyTable] 执行存储过程测试@Myva

我需要从Access向SQL server传递一个表并执行一个存储过程

我正在Access中使用传递查询来完成此操作

我的直通查询:

DECLARE @MyVar TABLE { .....<variables> }

INSERT INTO @MyVar   SELECT *
    FROM [MyTable]

EXEC sproc_test @Myvar
DECLARE@MyVar表{….}
插入@MyVar SELECT*
从[MyTable]
执行存储过程测试@Myvar
我的存储过程:

ALTER PROCEDURE [dbo].[sproc_test] 

@MyVar TABLE(....<variables>) 

AS ...<the rest of the sproc>
ALTER过程[dbo]。[sproc\u测试]
@MyVar表(…)
作为。。。

这样行吗?存储过程中出现“表附近语法错误”错误。

若要接受表变量作为存储过程的参数,需要定义表类型并将其指定为存储过程中的类型,而不是在存储过程定义中定义为表

e、 你最终会得到这样的结果

ALTER PROCEDURE [dbo].[sproc_test]
    @MyVar MyTableType READONLY
AS
...
查看如何定义表格类型等