source

Excel 워크시트에서 sql 삽입 스크립트를 생성합니다.

manysource 2023. 4. 25. 22:36

Excel 워크시트에서 sql 삽입 스크립트를 생성합니다.

데이터베이스에 추가할 큰 엑셀 워크시트가 있습니다.

이 엑셀 워크시트에서 SQL 삽입 스크립트를 생성할 수 있습니까?

언급한 방법 중 하나를 사용하여 가져오는 것이 정말로 큰 파일이라면 이상적이지만 Excel을 사용하여 삽입문을 만들 수 있습니다.

="INSERT INTO table_name VALUES('"&A1&"','"&B1&"','"&C1&"')"

MS SQL에서는 다음을 사용할 수 있습니다.

SET NOCOUNT ON

'해당 1행' 주석을 모두 표시하지 않습니다.또한 행이 많고 오류가 발생할 경우 가끔 문 사이에 GO를 넣으십시오.

아래와 같이 Management Studio 인터페이스를 통해 적절한 테이블을 생성하고 테이블에 데이터를 삽입할 수 있습니다.데이터 양에 따라 다소 시간이 걸릴 수 있지만 매우 편리합니다.

여기에 이미지 설명을 입력하십시오.

여기에 이미지 설명을 입력하십시오.

에서 많은 시간을 절약할 수 있는 편리한 도구가 있습니다.

http://tools.perceptus.ca/text-wiz.php?ops=7

테이블 이름, 필드 이름, 데이터 - 탭을 구분하여 입력한 후 Go를 누르면 됩니다!

다음과 같은 Excel 문을 사용할 수 있습니다.

="INSERT INTO table_name(`"&$A$1&"`,`"&$B$1&"`,`"&$C$1&"`, `"&$D$1&"`) VALUES('"&SUBSTITUTE(A2, "'", "\'")&"','"&SUBSTITUTE(B2, "'", "\'")&"','"&SUBSTITUTE(C2, "'", "\'")&"', "&D2&");"

따라서 Hart CO의 답변이 열 이름을 고려하고 열의 따옴표로 인한 컴파일 오류를 제거하므로 개선됩니다.마지막 열은 따옴표가 없는 숫자 값 열의 예제입니다.

데이터베이스에 따라 CSV로 내보낸 다음 가져오기 방법을 사용할 수 있습니다.

MySQL - http://dev.mysql.com/doc/refman/5.1/en/load-data.html입니다.

PostgreSQL - http://www.postgresql.org/docs/8.2/static/sql-copy.html입니다.

이렇게 하다를 사용하세요.ConvertFrom-ExcelToSQLInsertPowerShell 갤러리의 ImportExcel에서 확인할 수 있습니다.

NAME
    ConvertFrom-ExcelToSQLInsert
SYNTAX
    ConvertFrom-ExcelToSQLInsert [-TableName] <Object> [-Path] <Object> 
      [[-WorkSheetname] <Object>] [[-HeaderRow] <int>] 
      [[-Header] <string[]>] [-NoHeader] [-DataOnly]  [<CommonParameters>]
PARAMETERS
    -DataOnly
    -Header <string[]>
    -HeaderRow <int>
    -NoHeader
    -Path <Object>
    -TableName <Object>
    -WorkSheetname <Object>
    <CommonParameters>
        This cmdlet supports the common parameters: Verbose, Debug,
        ErrorAction, ErrorVariable, WarningAction, WarningVariable,
        OutBuffer, PipelineVariable, and OutVariable. For more information, see
        about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).
ALIASES
    None
REMARKS
    None
EXAMPLE
    ConvertFrom-ExcelToSQLInsert MyTable .\testSQLGen.xlsx

VB를 사용하여 파일 행에 출력할 내용을 데이터 주변의 적절한 sql 문에 한 줄씩 추가할 수 있습니다.전에도 해본 적이 있어요

여기 아주 잘 작동하는 또 다른 도구가 있습니다...

http://www.convertcsv.com/csv-to-sql.htm

탭으로 구분된 값을 가져와서 INSERT 스크립트를 생성할 수 있습니다.복사하여 붙여넣기만 하면 됩니다. 2단계 옵션에서 "첫 번째 행은 열 이름" 상자를 선택합니다.

그런 다음 아래로 스크롤하고 3단계에서 "Schema" 상자에 표 이름을 입력합니다.테이블 또는 보기 이름:"

테이블 삭제 및 생성 확인란에도 주의를 기울이고 스크립트를 실행하기 전에 생성된 스크립트를 검토해야 합니다.

이게 제가 찾은 방법 중 가장 빠르고 믿을 수 있는 방법입니다.

다음 C# 방법을 사용하여 Excel 시트를 사용하여 삽입 스크립트를 생성할 수 있습니다. 메서드를 실행하기 전에 NuGet Package Manager에서 OfficeOpenXml 패키지를 가져오면 됩니다.

public string GenerateSQLInsertScripts() {

        var outputQuery = new StringBuilder();
        var tableName = "Your Table Name";
        if (file != null)
        {
            var filePath = @"D:\FileName.xsls";

            using (OfficeOpenXml.ExcelPackage xlPackage = new OfficeOpenXml.ExcelPackage(new FileInfo(filePath)))
            {
                var myWorksheet = xlPackage.Workbook.Worksheets.First(); //select the first sheet here
                var totalRows = myWorksheet.Dimension.End.Row;
                var totalColumns = myWorksheet.Dimension.End.Column;

                var columns = new StringBuilder(); //this is your columns

                var columnRows = myWorksheet.Cells[1, 1, 1, totalColumns].Select(c => c.Value == null ? string.Empty : c.Value.ToString());

                columns.Append("INSERT INTO["+ tableName +"] (");
                foreach (var colrow in columnRows)
                {
                    columns.Append("[");
                    columns.Append(colrow);
                    columns.Append("]");
                    columns.Append(",");
                }
                columns.Length--;
                columns.Append(") VALUES (");
                for (int rowNum = 2; rowNum <= totalRows; rowNum++) //selet starting row here
                {
                    var dataRows = myWorksheet.Cells[rowNum, 1, rowNum, totalColumns].Select(c => c.Value == null ? string.Empty : c.Value.ToString());

                    var finalQuery = new StringBuilder(); 
                    finalQuery.Append(columns);

                    foreach (var dataRow in dataRows)
                    {
                        finalQuery.Append("'");
                        finalQuery.Append(dataRow);
                        finalQuery.Append("'");
                        finalQuery.Append(",");
                    }
                    finalQuery.Length--;

                    finalQuery.Append(");");

                    outputQuery.Append(finalQuery);

                  }

            }
        }

return outputQuery.ToString();}

다음은 CSV 파일을 SQL Insert Into 문으로 변환하기 위한 온라인 자동화에 대한 링크입니다.

CSV에서 SQL로 이동합니다.

Excel 파일 데이터를 데이터베이스에 삽입하기 위해 생성한 쿼리입니다. 이 ID와 가격에는 숫자 값과 날짜 필드도 포함됩니다.이 쿼리는 내가 요구하는 모든 유형을 요약한 것입니다. 당신에게도 유용할 수 있습니다.

="insert into  product (product_id,name,date,price) values("&A1&",'" &B1& "','" &C1& "'," &D1& ");"


    Id    Name           Date           price 
    7   Product 7   2017-01-05 15:28:37 200
    8   Product 8   2017-01-05 15:28:37 40
    9   Product 9   2017-01-05 15:32:31 500
    10  Product 10  2017-01-05 15:32:31 30
    11  Product 11  2017-01-05 15:32:31 99
    12  Product 12  2017-01-05 15:32:31 25

SQL 스크립트를 자주 만들어 소스 제어에 추가한 후 DBA에게 보내야 했습니다.이 엑셀을 사용했어요.Windows 스토어 https://www.microsoft.com/store/apps/9NH0W51XXQRM의 IntoSQL App은 "CREATE TABLE" 및 INSERTS를 사용하여 전체 스크립트를 생성합니다.

SQL 삽입물을 빠르게 생성할 수 있는 신뢰할 수 있는 방법이 있으며, 처리 중에 부분 매개변수를 수정할 수 있습니다.예를 들어 호환되지 않는 구조와 필드 수가 있는 데이터베이스에 수백 개의 데이터를 복사하는 등의 작업을 수행하는 데 많은 도움이 됩니다.IntelIJ DataGrip은 제가 사용하는 강력한 도구입니다.DG는 WPS Office 또는 MS Excel로부터 열 또는 회선으로 데이터를 즉시 수신할 수 있으며, 복사 후 SQL 삽입으로 데이터를 내보낼 수 있습니다.

언급URL : https://stackoverflow.com/questions/16818796/generate-sql-insert-script-from-excel-worksheet 입니다.