sql中的动态表

时间:2009-02-27 13:44:14

标签: sql-server sql-server-2000

有没有在sql server 2000中创建动态表的方法?

2 个答案:

答案 0 :(得分:4)

您可以通过为octothorp(#)添加前缀来创建临时表,也可以使用以@符号为前缀的表变量。

create table #tempTable (col1 char(1)) -- Temporary table

declare @tempTableVariable table (col1 char(1)) -- Table variable

来自http://www.sqlteam.com/article/temporary-tables

  • 如果您的行少于100行,通常使用表变量。否则使用临时表。这是因为SQL Server不会创建表变量的统计信息。
  • 如果需要在其上创建索引,则必须使用临时表。
  • 使用临时表时,始终创建它们并创建任何索引,然后使用它们。这将有助于减少重新编译。从SQL Server 2005开始减少了这种影响,但它仍然是一个好主意。

答案 1 :(得分:0)

以下是返回表变量的用户定义函数的示例:

CREATE FUNCTION getDynamicTable () 
RETURNS     
    @output table (
        id int identity,
        value nvarchar(50)
    )
AS
BEGIN

    insert into @output (value) 
    values ('test 1')

    insert into @output (value) 
    values ('test 2')

    return
END

希望这有帮助