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 '+@TableName + '( '+@Column1Name+' '
+@Column1DataType +' '+@Column1Nullable +') ON PRIMARY '
EXEC (@SQLString)
GO
我想创建一个新表,需要根据其他数据库列值动态添加表列名
答案 0 :(得分: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作为索引。