我一直在玩動態SQL來嘗試完成這一點,它有點可能,但不是最順利的方式去做。創建一個隨機名稱(數字)臨時表
所以我想知道是否有一種方法來創建一個隨機名臨時表(## show101,## show24,## show576)。
我想實現的是一個臨時表,它是由不同的表中的某些數據創建的。然後我只是操縱臨時表中的數據並輸出結果。
我使用SQL Server 2008的
我一直在玩動態SQL來嘗試完成這一點,它有點可能,但不是最順利的方式去做。創建一個隨機名稱(數字)臨時表
所以我想知道是否有一種方法來創建一個隨機名臨時表(## show101,## show24,## show576)。
我想實現的是一個臨時表,它是由不同的表中的某些數據創建的。然後我只是操縱臨時表中的數據並輸出結果。
我使用SQL Server 2008的
你的例子是使用全球臨時表。這些內容會一直保留,直到它們被刪除,並且它們可以在不同的連接之間共享。這就是爲什麼他們是「全球」的原因。就你而言,它們可以在執行動態語句和外部語句之間共享。
我建議的代碼看起來更像是這樣的:
create table #MyTempTable . . . <as whatever>
declare @sql nvarchar(max) = '
select <whatver>
into #temp1
. . .
do some more work on #temp1 if you like
--Finally
select * from temp1
';
insert into #MyTempTable
exec(@sql);
這將「移動」從動態範圍有關外劃定範圍,在那裏你可以將它用於其他目的的數據。您現在可以在#MyTempTable中訪問它。
用一個唯一的ID列來包含你的隨機數是不是更容易?然後您可以從表格中選擇具有適當ID的記錄。 – LittleBobbyTables 2013-02-11 16:42:28
臨時表的範圍在一個動態SQL執行語句中。你爲什麼需要版本? – 2013-02-11 16:43:30
@LittleBobbyTables - 不能輸入到表中的數據根據客戶選擇的不同而不同,所以列不同 – JohnZ 2013-02-11 16:45:09