Выполните хранимую процедуру SQL-Server 2008 из Access, передав переменную TABLE - PullRequest
2 голосов
/ 18 октября 2010

Мне нужно передать таблицу из Access на SQL-сервер и выполнить хранимую процедуру.

Для этого я использую сквозные запросы в Access.

Мой сквозной запрос:

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

INSERT INTO @MyVar   SELECT *
    FROM [MyTable]

EXEC sproc_test @Myvar

Моя хранимая процедура:

ALTER PROCEDURE [dbo].[sproc_test] 

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

AS ...<the rest of the sproc>

Должно ли это работать? В хранимой процедуре появляется ошибка «Неверный синтаксис рядом с таблицей».

1 Ответ

1 голос
/ 18 октября 2010

Чтобы принять переменную TABLE в качестве параметра для хранимой процедуры, вам нужно определить тип таблицы и указать его как тип в sproc вместо определения типа TABLE в определении sproc

, напримерВ итоге вы получите что-то вроде этого

ALTER PROCEDURE [dbo].[sproc_test]
    @MyVar MyTableType READONLY
AS
...

Ознакомьтесь с этой статьей , чтобы узнать, как определить тип таблицы и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...