如何在T-SQL中的預存程序中動態建立表
建立表格變數作為臨時表,如提供的所示例如,不正確。要建立臨時表,請使用以下語法:
CREATE TABLE #customer ( Name varchar(32) not null )
要聲明表變量,請使用以下語法:
DECLARE @Customer TABLE ( Name varchar(32) not null )
動態SQL 提供了另一種在儲存中建立表的方法。程式.您可以將SQL 語句建構為字串並執行它:
CREATE PROCEDURE sproc_BuildTable @TableName NVARCHAR(128) ,@Column1Name NVARCHAR(32) ,@Column1DataType NVARCHAR(32) ,@Column1Nullable NVARCHAR(32) AS DECLARE @SQLString NVARCHAR(MAX) SET @SQString = 'CREATE TABLE '+@TableName + '( '+@Column1Name+' '+@Column1DataType +' '+@Column1Nullable +') ON PRIMARY ' EXEC (@SQLString) GO
這個預存程序可以執行如下:
sproc_BuildTable 'Customers','CustomerName','VARCHAR(32)','NOT NULL'
但是,在儲存過程中動態建立表格一般是不鼓勵的原因是:
如果您需要動態建立表,請考慮探索其他解決方案,例如讓商店對應到具有定義價格的現有產品表。
以上是如何在T-SQL預存過程中動態建表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!