2009-02-27 20 views
1

是否有任何方法在sql server 2000中創建動態表?sql中的動態表

+0

你有什麼更多的細節,你想實現什麼?你是否試圖創建將留在數據庫中的新表?你想改變現有的表來改變它們的列嗎?您是否需要用於存儲過程處理的臨時表? – 2009-02-27 14:03:57

回答

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開始,這個影響就減少了,但它仍然是一個好主意。
+0

如果通過查詢分析器/管理控制檯創建臨時表,該表會一直保留,直到您明確地刪除它們或通過關閉會話 – RuudKok 2009-02-27 13:53:32

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 

希望這有助於