如何最好地调用动态表

时间:2014-05-09 16:45:40

标签: sql sql-server tsql

我有一个脚本,这是一个非常强大的选择语句,其格式如下。 它作为独立脚本运行良好,但函数和视图中的局部变量和临时表限制阻止我将其添加到数据库中。创建此动态数据的最佳方法是什么,我可以在存储过程的FROM子句中调用它而不使用SQL2005之前不可用的功能?

CREATE TABLE t1
(CARE_ID int NOT NULL,EVENT_DATE datetime NULL,EVENT_ID int NULL,EVENT_TYPE varchar(20))

CREATE TABLE t2
(CARE_ID int NOT NULL,EVENT_DATE datetime NULL,EVENT_ID int NULL,EVENT_TYPE varchar(20))

INSERT INTO t1
SELECT STATEMENT GOES HERE

INSERT INTO t2
SELECT STATEMENT GOES HERE


SELECT * FROM anotherTable
UNION
SELECT * FROM t1
UNION
SELECT * FROM t2

DROP TABLE t1
DROP TABLE t2

1 个答案:

答案 0 :(得分:1)

Microsoft使用SQL Server 2000引入了表变量作为使用临时表的替代方法。

DECLARE @T1 TABLE
(
    CARE_ID int NOT NULL,
    EVENT_DATE datetime NULL,
    EVENT_ID int NULL,
    EVENT_TYPE varchar(20)
)

INSERT INTO @T1
SELECT STATEMENT GOES HERE

这些非常适合在存储过程中使用。