2010-11-10 8 views
4

Existe-t-il un moyen, dans SQL Server, de déclarer une variable de table sans connaître les définitions de table?Déclarez une variable de table sans définition de colonne?

gratia exempli:

DECLARE @Results TABLE 
INSERT INTO @Results EXEC MyProc @param1 = @myValue 

ou

DECLARE @Results TABLE 
SELECT INTO @Results EXEC MyProc @param1 = @myValue 

ou

DECLARE @Results TABLE 
EXEC MyProc @param1 = @myValue INTO @Results 

ou

DECLARE @Results TABLE 
EXEC INTO @Results MyProc @param1 = @myValue 

ou

DECLARE @Results TABLE 
SELECT * FROM EXEC MyProc @param1 = @myValue INTO @Results 

ou

DECLARE @Results TABLE 
SELECT * INTO @Results FROM EXEC MyProc @param1 = @myValue 

ou

DECLARE @Results TABLE 
SELECT * INTO @Results EXEC MyProc @param1 = @myValue 

(vous voyez l'idée)

Répondre

5

Impossible. Citation de "livres en ligne":

==============

Syntaxe Remarque Utilisez DECLARE @local_variable pour déclarer des variables de type table.

table_type_definition ::= 
    TABLE ({ column_definition | table_constraint } [ ,...n ]) 

==============

"(", au moins une définition de colonne et ")" est syntaxiquement nécessaire. PS: AFAIK insertion dans toute nouvelle table à partir de "exec" résultats sont impossibles du tout. Seulement à une table avec structre prédéfinie.