stored-procedures - 声明一个没有列定义的表变量?

标签 stored-procedures sql-server-2000

在 SQL Server 中,有没有办法在不知道表定义的情况下声明表变量?

示例:

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

(你明白了)

最佳答案

不可能的。引自“在线书籍”:

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

句法
注意 使用 DECLARE @local_variable 声明表类型的变量。

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

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

"(", 至少一个列定义和 ")"在语法上是必需的。

PS:AFAIK 从“exec”结果插入任何新表是不可能的。仅适用于具有预定义结构的表。

关于stored-procedures - 声明一个没有列定义的表变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4146074/

相关文章:

asp.net - 使用位从存储过程返回 bool 值

mysql - 从具有某些条件的两个相同表中获取记录

php - 在单个语句中多次调用存储过程时出现错误 1064

SQL Group by 和 concat

SQL Server 2000 上的 SQL Server ROW_NUMBER()?

MySQL集群-分布感知查询和存储过程是否是冲突的想法?

mysql - mysql中的ERROR 1064,任何人都可以检查错误是什么?

sql-server - WHERE IN 子句中的存储过程参数

sql-server - SQL Server : How to ignore referential integrity until COMMIT?

sql-server-2000 - Sql 2000 float 在执行除法时不显示十进制