2015-08-26 1 views
0

J'utilise openrowset pour exécuter la procédure OperatorsCalc.SQL Comment utiliser la variable table dans Openrowset

Comment puis-je envoyer des paramètres déclarés:

  1. @operators (OperatorTableType)

  2. @number (int)

dans la procédure qui est exécutée par openrowset?

DECLARE @operators OperatorTableType 
insert into @operators values ('Mr James') 
insert into @operators values ('Mr Johnny') 

DECLARE @number int = 3 

SELECT * 
INTO #MyTempTableForOperators 
FROM 
    OPENROWSET('SQLNCLI', 'Server=apollo;Trusted_Connection=yes;', 
       'SET FMTONLY OFF; 
       SET NOCOUNT ON; 
       EXEC servername.dbname.dbo.OperatorsCalc @number @operators') -- I want to sent parameters @operators and @number in here 

select * from #MyTempTableForOperators 
+0

De quel produit dbms s'agit-il? (Ne ressemble pas à ANSI SQL.) – jarlh

+0

Microsoft SQL Server 2008 – corso

Répondre

1

Essayez d'utiliser linked server, mais il peut échouer si on insert imbriqué dans temp.

CREATE TABLE #temp (...) 

INSERT INTO #temp(...) 
EXECUTE [servername].[dbname].[dbo].[OperatorsCalc] @number @operators; 

Lire aussi How to Share Data between Stored Procedures by Erland Sommarskog. Il y a un bon chapitre sur OPENQUERY.

+0

cela a fonctionné, merci aussi pour ces liens, ils sont si utiles – corso

+0

@corso N'oubliez pas de marquer comme réponse;) – lad2025