2012-04-05 4 views
4

프로그래밍 방식으로 SQL Server 2008 테이블을 C#으로 작성하여 열 목록에서 각 열 이름을 생성해야합니다 (각 열 이름은 테이블의 행 이름입니다)프로그래밍 방식으로 SQL Server 테이블 만들기

내 질문은 열 목록을 통해 루프 명령 문자열이 무엇이고 테이블의 기록을 작성

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

내가 columnsName에 열이있는 테이블을 만들려고합니다. 그러나 목록 크기가 일정하지 않기 때문에 테이블 열을 생성하기 위해 목록을 반복해야합니다.

+3

0_o 행에 이름이있는 RDBMS를 모르겠습니다. 내가 알고있는 모든 RDBMS에서 열의 이름은 ... –

+3

StackOverflow에 오신 것을 환영합니다. 특정 SQL 구문에 대한 지원과 같이 크게 달라지는 것에 대해 묻는 경우 일반 태그와 함께보다 구체적인 태그를 제공해야합니다. 이 경우 DBMS는 SQL 구문이 매우 다양하기 때문에 사용중인 데이터베이스 (MySQL, SQL Server 등)를 아는 것이 중요합니다. 일부는 SQL (DDML) 문을 사용하여 데이터베이스를 만들지도 않습니다. 사용중인 데이터베이스 엔진에 대한 태그를 추가하려면 질문을 편집하십시오. 모든 답변을 제공하는 것은 매우 어렵습니다. 감사. :) –

+0

'DataTable' 열의 SQL 테이블을 생성 할 수 있습니다. 이거 괜찮은거야? – MoonKnight

답변

11

간단히 말하면

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

C#으로

w3Schools.com로부터 쿼리을 연결하고 쿼리를 실행하기 string builder를 사용한다.

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에서 테이블 (또는 샘플 테이블)을 만든 다음 테이블을 마우스 오른쪽 단추로 클릭하고 스크립트 테이블을 \ Create To \ New 쿼리 편집기 창. 그러면 쿼리를 작성하는 데 사용할 스크립트가 표시됩니다.

관련 문제