扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1、选择要导入的数据库---任务---导入数据。
创新互联建站-专业网站定制、快速模板网站建设、高性价比遂平网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式遂平网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖遂平地区。费用合理售后完善,十载实体公司更值得信赖。
2、选择excel数据源--浏览文件。注意如果excel中首行数据为字段,应勾选“首行包含列名称”。
3、按照提示单击下一步后选择服务器填写验证信息和目标数据库。
4、点击下一步,确定导入的类型。
5、选择数据库--选择源表和原视图,如果不选则目标,则会在数据库中自动生成同名的表,并把数据导入进去。
6、然后默认下一步,无须保存SSIS包,直接默认立即运行,最后点击完成即可。
1、1、打开电脑桌面,依次点击【开始】,【程序】,【Microsoft SQL Server】,【企业管理器】,打开企业管理器软件。
2
2、选择数据转换服务(DTS),选择DTS导入向导。
3
进入数据转换服务(DTS)导入和导出向导。
选择数据源,
选择数据源和数据库NOTTHWIND。
选择目的数据库PUBS。
选择复制表或者视图。
选择Orders表。
点击预览,查看数据。
我们选择立即运行。
正在完成导入。
源: Microsoft SQL Server
使用 Microsoft OLE DB Provider for SQL Server
位置: (local)
数据库: Northwind
目的: Microsoft SQL Server
使用 Microsoft OLE DB Provider for SQL Server
位置: (local)
数据库: pubs
提示成功将表复制到另一个数据库。
数据库 Northwind中表Orders成功导入到数据库pubs中。
sqlserver的数据库导入MSSQLServer数据库方法:
现有数据库是mdf格式还是bak格式。
1、如果是mdf格式,采用附加数据库方式。
2、如果是bak格式,则要选择还原数据库方式。
具体附加数据库方法:
1、企业管理器-数据库--所有任务--附加数据库--选择你的mdf文件,然后进行附加操作即可。
还原数据库方法:
1.右击SQL Server 2000实例下的“数据库”文件夹。就是master等数据库上一级的那个图标。选择“所有任务”,“还原数据库”。
2.在“还原为数据库”中填上你希望恢复的数据库名字。这个名字应该与你的源码中使用的数据库名字一致。
3.在弹出的对话框中,选“从设备”。
4.点击“选择设备”。
5.点击“添加”。
6.点击“文件名”文本框右侧的“…”按钮,选中你的“.BAK”文件,并点击确定回到“选择还原设备”对话框。
7.点击确定回到“还原数据库”对话框。
8.点击“选项”选项卡。
9.将所有“移至物理文件名”下面的路径,改为你想还原后的将数据库文件保存到的路径。如果你不希望改变,可以直接点击确定。这时便恢复成功了。
如果需要向SQL Server批量导入数据,根据导入的选项和表中的索引设置,数据导入的时间可能会在不同情况下相差甚远。如何能够把批量导入的过程尽量少花时间呢?在这里我们将会介绍几种不同的批量导入数据的方法、各种方法相应的实例及其所需的时间长短。
在我们的测试中我们采取了六种不同的数据导入方法:
1、表含有一个聚集索引(clustered index)和两个非聚集索引(non-clustered index)
2、表只含有一个聚集索引
3、表不含有任何索引
4、表不含有任何索引并且有TABLOCK指示
5、表只含有一个聚集索引并且有TABLOCK指示
6、表含有一个聚集索引一个聚集索引并且有TABLOCK指示
另外,测试所用数据库在测试前设置为批日志恢复模式。
这些测试中,每次迭代后数据库和日志都会清理日志文件,而且实施每一个步骤之前都将表删除,然后重新创建新表。
测试一
第一次运行是使用一个含有121317行的数据集和一个空表。每次运行之前都会重新创建符合测试的表。
如下图结果所示,我们可以看出根据你用来导入数据的不同程序,运行时间有所不同。
测试2
第二次运行是使用一个含有242634行的数据集和一个空表。每次运行之前都会重新创建符合测试的表。
我们可以看到这些运行的时间有一些差别。
测试三
在这个测试中,我们运行了两个导入过程。第一次导入使用了一个含有121317行和一个空表,然后在同一个表中导入另外121317条记录。每次运行之前都会重新创建符合测试的表。
总结
我们可以从以上测试的结果看出,各种不同的条件会影响数据导入所用的时间。因此,如果想要更快地导入数据,可以导入不含任何索引的表,在导入完成之后再建立索引。不过我们的测试中没有检测在导入完成后建立索引所需要的时间。
另外,还要注意确保你的数据和日志文件有足够的空间来完成这个导入过程而不会导致文件自动增长。文件自动增长会极大地影响总导入的速度。
我们通过SQL脚本来插入数据,常见如下四种方式。
方式一:一条一条插入,性能最差,不建议使用。
INSERT INTO Product(Id,Name,Price) VALUES(newid(),'牛栏1段',160);INSERT INTO Product(Id,Name,Price) VALUES(newid(),'牛栏2段',260);
......
方式二:insert bulk
语法如下:
BULK INSERT [ [ 'database_name'.][ 'owner' ].]{ 'table_name' FROM 'data_file' }
WITH (
[ BATCHSIZE [ = batch_size ] ],
[ CHECK_CONSTRAINTS ],
[ CODEPAGE [ = 'ACP' | 'OEM' | 'RAW' | 'code_page' ] ],
[ DATAFILETYPE [ = 'char' | 'native'| 'widechar' | 'widenative' ] ],
[ FIELDTERMINATOR [ = 'field_terminator' ] ],
[ FIRSTROW [ = first_row ] ],
[ FIRE_TRIGGERS ],
[ FORMATFILE = 'format_file_path' ],
[ KEEPIDENTITY ],
[ KEEPNULLS ],
[ KILOBYTES_PER_BATCH [ = kilobytes_per_batch ] ],
[ LASTROW [ = last_row ] ],
[ MAXERRORS [ = max_errors ] ],
[ ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ],
[ ROWS_PER_BATCH [ = rows_per_batch ] ],
[ ROWTERMINATOR [ = 'row_terminator' ] ],
[ TABLOCK ],
)
相关参数说明:
BULK INSERT
[ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ]
FROM 'data_file'
[ WITH
(
[ [ , ] BATCHSIZE = batch_size ] --BATCHSIZE指令来设置在单个事务中可以插入到表中的记录的数量
[ [ , ] CHECK_CONSTRAINTS ] --指定在大容量导入操作期间,必须检查所有对目标表或视图的约束。若没有 CHECK_CONSTRAINTS 选项,则所有 CHECK 和 FOREIGN KEY 约束都将被忽略,并且在此操作之后表的约束将标记为不可信。
[ [ , ] CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ] --指定该数据文件中数据的代码页
[ [ , ] DATAFILETYPE =
{ 'char' | 'native'| 'widechar' | 'widenative' } ] --指定 BULK INSERT 使用指定的数据文件类型值执行导入操作。
[ [ , ] FIELDTERMINATOR = 'field_terminator' ] --标识分隔内容的符号
[ [ , ] FIRSTROW = first_row ] --指定要加载的第一行的行号。默认值是指定数据文件中的第一行
[ [ , ] FIRE_TRIGGERS ] --是否启动触发器
[ [ , ] FORMATFILE = 'format_file_path' ]
[ [ , ] KEEPIDENTITY ] --指定导入数据文件中的标识值用于标识列
[ [ , ] KEEPNULLS ] --指定在大容量导入操作期间空列应保留一个空值,而不插入用于列的任何默认值
[ [ , ] KILOBYTES_PER_BATCH = kilobytes_per_batch ]
[ [ , ] LASTROW = last_row ] --指定要加载的最后一行的行号
[ [ , ] MAXERRORS = max_errors ] --指定允许在数据中出现的最多语法错误数,超过该数量后将取消大容量导入操作。
[ [ , ] ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ] --指定数据文件中的数据如何排序
[ [ , ] ROWS_PER_BATCH = rows_per_batch ]
[ [ , ] ROWTERMINATOR = 'row_terminator' ] --标识分隔行的符号
[ [ , ] TABLOCK ] --指定为大容量导入操作持续时间获取一个表级锁
[ [ , ] ERRORFILE = 'file_name' ] --指定用于收集格式有误且不能转换为 OLE DB 行集的行的文件。
)]
方式三:INSERT INTO xx select...
INSERT INTO Product(Id,Name,Price) SELECT NEWID(),'牛栏1段',160
UNION ALL
SELECT NEWID(),'牛栏2段',180 UNION ALL......
方式四:拼接SQL
INSERT INTO Product(Id,Name,Price) VALUES(newid(),'牛栏1段',160)
,(newid(),'牛栏2段',260)
......
方法/步骤一:代码方法
1
打开SQL Server,可以选择Windows方式连接。
2
打开数据库,右键某一个数据库,选择“新建查询(Q)”。
3
再代码界面输入如下代码,点击F5键或者点击运行按钮即可。
代码如下:
EXEC sp_attach_db @dbname = '你的数据库名',
@filename1 = 'mdf文件路径(包缀名)',
@filename2 = 'Ldf文件路径(包缀名)'
4
可以看到导入成功。如果导入不成功,则需要修改mdf,ldf文件的权限。右键-属性-安全-编辑,完全控制选择允许。
5
这样导入问题即可迎刃而解,当然,有时会遇到版本不兼容问题,低版本不能导入高版本SQL的mdf和ldf文件。
END
方法/步骤:直接附加mdf,ldf文件
在“数据库”处右键选择“附加”,打开附加界面。
在“附加数据库”界面,添加mdf文件即可,点击“确定”。
如果导入出现错误,则可以用第一种方法,屡试不爽。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流