使用循环创建列

时间:2016-03-07 11:36:02

标签: c# sql asp.net sql-server asp.net-mvc

我有一个MVC项目,在数据库中我想创建一个表,在循环中创建一个列和更多列到我的解决方案中某处定义的List的计数。怎么做到这一点?

CREATE TABLE [dbo].[Table]
(
    [Id] INT NOT NULL PRIMARY KEY, 
    [tag] NVARCHAR(MAX) NOT NULL

    while... <something becomes MyList.Count>
    [value] NVARCHAR(MAX)
)

1 个答案:

答案 0 :(得分:0)

我猜你在创建后为循环编写了一个单独的查询,这将是一个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

希望这有效:)