Создание таблицы SQL Server программно
Мне нужно программно создать таблицу SQL Server 2008 В C# таким образом, что столбцы таблицы должны быть сгенерированы из списка столбцов (имя каждого столбца-это имя строки в таблице)
Мой вопрос в том, что такое командная строка для циклического перебора списка столбцов и создания записанной таблицы:
List<string> columnsName = ["col1","col2","col3"]
Я хочу создать таблицу со столбцами в columnsName
. Но так как размер списка не постоянен, мне нужно сделать цикл по списку, чтобы сгенерировать таблицу столбцы.
2 ответа:
Простой ответ -
CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, column_name3 data_type, .... )
В 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