2014-09-03 63 views
0
CREATE PROCEDURE sproc_BuildTable 
      @TableName NVARCHAR(128) 
      ,@Column1Name NVARCHAR(32) 
      ,@Column1DataType NVARCHAR(32) 
      ,@Column1Nullable NVARCHAR(32) 
    AS 

    DECLARE @SQLString NVARCHAR(MAX) 
    SET @SQLString = 'CREATE TABLE '[email protected] + '('[email protected]+' ' 
    [email protected] +' '[email protected] +') ON PRIMARY ' 

    EXEC (@SQLString) 

    GO 

我想創建一個新的表,表列名必須添加動態基於其他數據庫字段的值我們如何添加數據庫表列動態地根據其它表值在SQL

+0

使用觸發器....? – Sathish 2014-09-03 05:03:51

+1

添加您到目前爲止嘗試過的代碼。我們需要一些工作 – Partha 2014-09-03 05:04:06

+0

我想爲學生輸入分數並保存到數據庫中,主題名稱是動態的。它會改變基於類,這是這種情況 – 2014-09-03 05:47:58

回答

1

待辦事項你想使它在SQL?如果是,那麼你可以使用:

select * into newtable from oldtable 

這將創建一個新的表(複製)使用舊的表名和數據。

如果你想有一個表中的所有列,您可以使用

sp_help tableName 

爲您的SQL查詢將返回所有細節。

和 如果你想用C#代碼來做到這一點,你可以得到的列名作爲上述

SqlDataAdapter adapter = new SqlDataAdapter(sqlquery, ConnectionString);  
DataTable table = new DataTable(); 
adapter.Fill(table); 
string columnName = table.Columns[desiredColumnIndex].ColumnName; 

它將返回您可以在其他sqlquery的用於創建新表的列名。在你的情況下,如果你的結果返回一列,你會傳遞0作爲索引。

+0

我不想從舊錶的所有列。我只想要一列值 – 2014-09-03 05:41:32

+0

使用**從OldTable中選擇[ColumnName]到newtable ** – 2014-09-03 05:53:58

+0

我不想插入它,我想這些[列]值作爲新表的列標題 – 2014-09-03 06:11:25

相關問題