我们如何根据 Sql 中的其他表值动态添加数据库表列

本文关键字:动态 添加 数据库 其他 何根 Sql 我们 | 更新日期: 2023-09-27 18:20:36

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

我想创建一个新表,表列名需要根据其他数据库列值动态添加

我们如何根据 Sql 中的其他表值动态添加数据库表列

你想用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 作为索引。