2010-11-10 54 views
4

在SQL Server中,是否有辦法在不知道表定義的情況下聲明表變量?聲明一個沒有列定義的表變量?

Exempli特惠:

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

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

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

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

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

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

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

(你的想法)

回答

5

不可能。從 「書在線」 引文:

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

語法 注意使用DECLARE @local_variable聲明類型表變量。

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

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

「(」,至少一列的定義和 「)」 是語法上必需的。 PS:從「exec」結果插入到任何新表中的AFAIK是根本不可能的。僅限於具有預定義結構的表格。