Создание таблицы SQL Server программно


Мне нужно программно создать таблицу SQL Server 2008 В C# таким образом, что столбцы таблицы должны быть сгенерированы из списка столбцов (имя каждого столбца-это имя строки в таблице)

Мой вопрос в том, что такое командная строка для циклического перебора списка столбцов и создания записанной таблицы:

List<string> columnsName = ["col1","col2","col3"]

Я хочу создать таблицу со столбцами в columnsName. Но так как размер списка не постоянен, мне нужно сделать цикл по списку, чтобы сгенерировать таблицу столбцы.

2 4

2 ответа:

Простой ответ -

CREATE TABLE table_name
(
    column_name1 data_type,
    column_name2 data_type,
    column_name3 data_type,
    ....
)

Из w3Schools.com

В C# используйте строковый конструктор для объединения запроса и последующего его выполнения.

StringBuilder query = new StringBuilder();
query.Append("CREATE TABLE ");
query.Append(tableName);
query.Append(" ( ");

for (int i = 0; i < columnNames.Length; i++)
{
    query.Append(columnNames[i]);
    query.Append(" ");
    query.Append(columnTypes[i]);
    query.Append(", ");
}

if (columnNames.Length > 1) { query.Length -= 2; }  //Remove trailing ", "
query.Append(")");
SqlCommand sqlQuery = new SqlCommand(query.ToString(), sqlConn);
SqlDataReader reader = sqlQuery.ExecuteReader();

Примечание: tableName, columnNames и columnTypes будут заменены на то, из чего вы получаете данные. Из вашего описания это звучит так, как будто вы получаете значения столбцов из запроса, поэтому вместо использования цикла for и массивов вы, вероятно, будете использовать цикл while для итерации результаты для построения запроса. Дайте мне знать, если вам нужен пример использования этого метода, и я сделаю его сегодня вечером.

Если у вас возникли проблемы с синтаксисом для создания таблицы, вы можете попробовать создать таблицу (или образец таблицы) в среде MS SQL Server Management Studio, затем щелкните правой кнопкой мыши таблицу и выберите пункт Script Table как\Create To\New Query Editor Window. Это покажет вам сценарий, который он будет использовать для построения запроса.

Вы хотите реализовать что–то вроде модели сущности–атрибута-значения?

Http://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model