创建一个循环的列
问题描述:
我有一个MVC项目,并且在数据库中我想创建一个表,其中有一列和多个列,并且在我的解决方案中定义了某个列表的计数。如何实现这一目标?创建一个循环的列
CREATE TABLE [dbo].[Table]
(
[Id] INT NOT NULL PRIMARY KEY,
[tag] NVARCHAR(MAX) NOT NULL
while... <something becomes MyList.Count>
[value] NVARCHAR(MAX)
)
答
我想你必须编写创建后的循环,这将是一个ALTER TABLE
一个单独的查询。
一样,
WHILE(condition)
BEGIN
ALTER TABLE Table1 ADD column_name datatype
END
这里,条件应该是计数。列名取决于您传递值的方式。我将它们作为表格格式的XML数据传递,然后将其转换为SQL中的表格,然后在更改时通过它们进行循环。
一样,
WHILE((SELECT COUNT(id) FROM temp))
BEGIN
EXECUTE('ALTER TABLE Table1 ADD COLUMN '+(SELECT TOP 1 column_name FROM temp)+' NVARCHAR(MAX)')
DELETE FROM temp WHERE temp.id = (SELECT TOP 1 id FROM temp)
END
希望这个作品:)
你将建立一个SQL字符串遍历列表附加列定义,然后执行它。通常以编程方式创建可变数量的列是一种迹象,无论数据属于其自己表中的行。 –
好吧,但在哪里添加这个SQL字符串,它的执行?不,它不是列的变量。这更像是我的项目列表是可变大小,我会定期更新它,但我也想为每个元素添加一列,我希望它是更自动的。 –
你为什么要这样做?这是一个非常糟糕的设计的标志。 –