能不能利用bulk insert指令将csv大文件导入sql数据库时直接生成新表,而不用提前新建

能不能利用bulk insert指令将csv大文件导入sql数据库时直接生成新表,而不用提前新建,第1张

工具:sqlserver2008R2 SQL Server Managerment Studio

步骤:

1、首先将要导入的csv文件,另存为excel文件,即文件后缀名为xlsx或xls。

2、打开SQL Server Managerment Studio后,在左侧的树中依次找到要导入的数据库,如数据库-系统数据库-master,然后右键点击“master”,选择任务-导入数据。

3、然后d出SQL Server导入和导出向导,直接点下一步

4、然后数据源选择:Microsoft Excel,选择好文件路径及文件版本;首行包含列名称可根据实际需要选择是否勾选,然后点击下一步。

5、选择好验证身份的方式及目标数据库,然后点击下一步。

6、选择复制一个或多个表或视图的数据,下一步。

7、选择好“源”后,点击编辑映射。

8、这里可以编辑列名称及列类型等内容。确认无误后,点击确定返回上一级。

9、直接点下一步。

10、勾选立即运行,点击下一步。

11、直接点“完成”。

12、如果顺利完成,将显示成功。

13、其中dbo'11$'就是新导入的表。

14、查询数据可看到正确导入。

参考代码为Visual Studio 2005下C#语言编写,使用的是OLEDB引擎,具体如下:

aspx 页面代码:

<fieldset>

<legend>CSV文件</legend>

<asp:TextBox ID="ImportCSV_tb" runat="server" Text="testAssetcsv"></asp:TextBox>

<br />

<asp:FileUpload ID="ImportCSVTest_fu" runat="server" />

<br />

<asp:Button ID="csvTest_btn" runat="server" Text="Import" CssClass="ButtonStyle" OnClick="csvTest_btn_Click" />

</fieldset>

<asp:Label ID="info_lb" runat="server" Text=""></asp:Label>

<asp:GridView ID="GridView1" runat="server" Visible="False" Width="100%">

</asp:GridView>

aspxcs文件代码:

protected void csvTest_btn_Click(object sender, EventArgs e)

{

thisGridView1Visible = false;

if (thisImportCSVTest_fuFileName == "" || thisImportCSV_tbTextTrim() == "")

{

thisinfo_lbText = "Select the file, and enter the correct name of the file";

return;

}

string strFullFileName = SystemDateTimeNowToString("yyyyMMdd_HHmmss_") + thisImportCSV_tbTextTrim();//保存的文件名

string strpath = ServerMapPath(@"TempFiles\");//详细文件路径

try

{

string sql = "select from " + strFullFileName;//查询语句

DataTable dt = new DataTable();

string mystring = @"Provider=MicrosoftJetOLEDB40;" + "Data Source=" + strpath + ";" + @"Extended Properties=""text;HDR=Yes;FMT=Delimited""";

OleDbConnection cnnxls = new OleDbConnection(mystring);

try

{

ImportCSVTest_fuPostedFileSaveAs(strpath + strFullFileName);//保存到服务器文件夹

cnnxlsOpen();//打开数据库连接

OleDbDataAdapter myda = new OleDbDataAdapter(sql, cnnxls);

mydaFill(dt);

cnnxlsClose();

SystemIOFileDelete(strpath);//删除上传的文件

}

catch (Exception ex)

{

thisinfo_lbText = exToString();//输出错误提示

}

finally

{

cnnxlsClose();

}

thisGridView1DataSource = dt;

thisGridView1DataBind();

thisGridView1Visible = true;

}

catch (Exception ex)

{

thisinfo_lbText += exToString();

}

}

1将选中的数据快儿拷贝到一个TXT文本文件中(记得把后面的空格消掉。。否则导入数据库后会有对应的空行),假如存到“D:\datatxt”这个位置里。

2根据要导入的数据快儿建立MySql数据库和表,然后进入命令提示符里使用命令

load data local infile 'D:/datatxt' into table exceltomysql fields terminated by '\t';

注意:盘符我使用的“/”才成功,否则提示找不到文件 下面文章中是用的“\”!

进行导入 *** 作手动进行Excel数据和MySql数据转换!

数据太大,用数据库客户端软件直接导入非常卡,还是直接执行SQL吧。

1、指定文件路径。

2、字段之间以逗号分隔,数据行之间以\r\n分隔(我这里文件是以\n分隔的)。

3、字符串以半角双引号包围,字符串本身的双引号用两个双引号表示。

Sql代码

复制代码 代码如下:

load data infile 'D:\\top-1mcsv'

into table `site`

fields terminated by ',' optionally enclosed by '"' escaped by '"'

lines terminated by '\n';

顺带也备份个导出吧。

Sql代码

复制代码 代码如下:

select from `site`

into outfile 'D:\\top-1mcsv'

fields terminated by ',' optionally enclosed by '"' escaped by '"'

lines terminated by '\n';

1、首先打开sqlserver选择一个数据库,右击选择任务,点击导入数据打开导入导出向导:

2、进入向导,下一步来到数据源的选择界面:

3、接着点击数据源下拉框,选择平面文件源:

4、在d出的窗口中,选择csv文件,筛选一下数据,点击下一步:

5、随后一路下一步,一直到出现完成按钮就说明导入成功了:

以上就是关于能不能利用bulk insert指令将csv大文件导入sql数据库时直接生成新表,而不用提前新建全部的内容,包括:能不能利用bulk insert指令将csv大文件导入sql数据库时直接生成新表,而不用提前新建、ASP如何实现CSV文件导入数据库、如何做初始批量导入CSV / MySQL数据到neo4j数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9435627.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存