2012-07-03 88 views
0

我想弄清楚如何創建一個使用傳遞到存儲過程的變量創建一個臨時表,我知道你可以連接使用+當它在引號(如所見在檢查下面的表是否存在),但我是否有可能使用變量生成一個臨時表,因爲有多個代理將使用這個,我必須確保該表是唯一的,以防它在同時。從存儲過程中的變量創建臨時表

CREATE PROCEDURE TP_Getagentcdr @agentid VARCHAR(20), @date VARCHAR(20) ,@enddate VARCHAR(20) 

AS 
BEGIN 
    IF OBJECT_ID('databasename.'[email protected]+'Tempcdr') IS NOT NULL 
    DROP TABLE [email protected]+Tempcdr 

    CREATE TABLE [email protected]+Tempcdr 
END 

回答

2

你想要什麼叫做Dynamic SQL

首先,創建一個VARCHAR裏面的語句:

DECLARE @drop_statement VARCHAR(MAX) = 'DROP TABLE databasename.' + @agentid + 'Tempcdr' 

然後,執行通過sp_executesql聲明:

sp_executesql @drop_statement 

創建表去以同樣的方式:

DECLARE @create_statement VARCHAR(MAX) = 'CREATE TABLE databasename.' + @agentid + 'Tempcdr' 

sp_executesql @create_statement 
+1

冠軍,你每天都會學到新的東西。 – Imsopov

相關問題