sql问题。怎么把.sql文件导入sql server 2008 导入中

mdb数据库文件如何导入Microsoft&SQL&Server&2008中
1.在‘开始’菜单打开‘Microsoft SQL Server 2008→SQL Server Management
Studio’。
2.新建一个数据库(名称自定义),选择新建的数据库点击右键选择‘任务→导入数据’。
3.在弹出的页面点击下一步,‘数据源’选择‘Microsoft
Access’,然后选择Access数据库所在的路径,如果Access数据库有用户名和密码就需要填写,如果没有就不用填写。点击‘下一步’。
4.在弹出的页面,‘数据源’可以安默认的不动。‘服务器名称’及‘身份验证’要和登录时的服务器及身份验证一样(如果不一样,在下面的数据库下拉框里找不到刚才新建的数据库)。在下面的数据库下拉框选择新建的数据库(如果没有新建的数据库,点击后面的刷新按钮。如果还是没有就检查服务器名称’及‘身份验证’是否正确)。可以点击后面的‘新建’。点击‘下一步’。
5.在弹出的页面,按照默认选择第一项(复制一个或多个表或视图的数据)。点击‘下一步’。
6.在‘选择源表和源视图’页面,选中要导入的表和视图。(可以点击‘预览’查看表中的数据)点击‘下一步’。
7.按照默认‘立即执行’,点击‘下一步’。
8.点击‘完成’。此文转载自it动力。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。在学习sql server 索引的时候,发现找到的很多资料都用的是一个Credit的数据,但是我不知道Credit数据库是从哪里来的。后来在这篇文章中找到了如下信息:
USE CREDIT
  -- These samples use the Credit database. You can download and restore the
  -- credit database from here:
  -- /resources/conferences/CreditBackup80.zip
  -- NOTE: This is a SQL Server 2000 backup and MANY examples will work on
  -- SQL Server 2000 in addition to SQL Server 2005.
顺利下载这个文件并解压缩以后发现这是一个sql server 2000的备份文件,后缀名是.bak。不过我用的是sql server 2012,使用如下方法来恢复这个数据库备份文件:打开SSMS-&database-&右键选择restore files and filegroups,然后按如下图所示操作:
但是执行这个操作会报错,错误如下图所示:主要是说明版本差异问题,我的bak文件是8.0版本(sql server 2000),但是要导入到11.0版本(sql server 2010)中,因此报错。
因为源文件版本过低,而目标数据库版本过高,这样的问题一个好的解决方案是首先降低目标数据的版本,然后一步一步往上提升版本。所以这里我们用使用sql server 2008作为过渡数据库。我们将上面的CreditBackup80.bak这个数据备份文件还原到sql server 2008中,假设还原在sqlserver2008中的数据库名称为Credit2008,然后在 sqlserver 2008中backup这个Credit2008数据库,默认会备份到C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup这个目录下面,备份文件名成为CreditBackup100.bak,最后将此备份文件CreditBackup100.bak还原到sql server 2012中。
PS:使用SSMS将sqlserver2008的bak文件还原到sqlserver2012中出现错误
错误1:启动sqlserver2012-&右键database-&restore files and filegroups-&在source for restore中选择from device,然后选择CreditBackup100.bak这个文件的路径,但是当我们指定到C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup这个目录的时候,发现找不到任何文件,如下图所示:
解决错误1:这是因为C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup这个目录有权限设定,我们查看这个目录的属性可以发现这个目录有一个特殊的用户叫做:T-WEIXU-W7\SQLServerMSSQLUser$t-weixu-w7$SQLEXPRESS。也就是说只有这个用户才有访问这个目录下的文件的权限。所以我门可以在windows下将C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup目录下的CreditBackup100.bak文件拷贝到其他目录,比如我现在拷贝的目录是:D:\CreditBackup80。
错误2:在解决上述错误以后,我们在source for restore中选择from device,并且选定了CreditBackup100.bak这个文件,最后点击OK,但是会提示错误:
The operating system returned the error '5(Access is denied.)' while attempting 'RestoreContainer::ValidateTargetForCreation' on ....。具体如下图所示:
从上述错误我们发现是因为我们想将sqlserver2008的bak文件还原到sqlserver2012的时候,却默认的被还原到原先的sqlserver2008的目录下,从路径&C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\Credit2012.mdf&我们可以知道这个就是sqlserver2008实例的目录。
解决错误2:造成这样错误的主要原因是因为我们在机器上安装了sqlserver2008和sqlserver2010两个版本,但是SSMS默认情况下只是让数据还原到sqlserver2008的目录下,我们必须指定sqlserver2012的目录,具体操作是:在restore file and filegroups界面中选中options,然后选定sqlserver2012实例的存放目录,如下图所示:
点击箭头所示的按钮(注意:必须通过点击按钮来指定目标位置的地址,如果手动修改路径的字符串,依然会报错。),会弹出如下错误:
指定Credit2012的数据文件和日志文件的存放目录,如下图所示:
完成上述操作以后点击确定,就能够正确完成数据库还原操作,最终将sqlserver2000的bak文件还原到了sqlserver2012中来。
解决错误2-方法2:
在sqlserver configure manager中选中sqlserver2012的properties,然后修改log on as中的属性,使用build-in account中的local system,具体参考:。
阅读(...) 评论()有时候我们可能会把CSV中的数据导入到某个数据库的表中,比如做报表分析的时候。
对于这个问题,我想一点也难不倒程序人员吧!但是要是SQL Server能够完成这个任务,岂不是更好!
对,SQL Server确实有这个功能。
首先先让我们看一下文件,该文件保存在我的D:盘下,名为csv.txt,内容是:
   现在就是SQL Server的关键部分了;
我们使用的是SQL Server的BULK INSERT命令,关于该命令的详细解释,请点击;
我们先在SQL Server中建立用于保存该信息的一张数据表,
Area NVARCHAR(MAX)
然后执行下面的语句:
'D:\csv.txt'
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
按F5,执行结果如下:
怎么样?是不是比用程序简单!
但是现在有几个问题需要考虑一下:
1,CSV文件中有的列值是用双引号,有的列值则没有双引号:
  如果再次运行上面的语句,得到结果就和上一个结果不同了:
  其中有的列就包含双引号了,这应该不是我们想要的结果,要解决这个问题,我们只能利用临时表了,先把CSV导入到临时表中,然后在从这个临时表中导入到最终表的过程中把双引号去掉。
2,CSV文件的列值全部是由双引号组成的:
  这个问题要比上一个稍微复杂点,除了要先把CSV文件导入到临时表中,还必须修改一下在把CSV文件导入到临时表的代码:
注意圈中的部分。
3,CSV文件的列要多于数据表的列:
  而我们的数据表只有三列,如果在执行上面的导入代码,会产生什么结果呢?
结果就是:
它把后边的全部放在了Area列中了,要处理这个问题,其实也很简单,就是我们把我们想要的列值在数据表中都按顺序建立一列,而把不需要的列值,也在数据表中建立一个,只不过只是一个临时列,在把这个数据表导入到最终表的时候,忽略这个临时列就行了。
Author:兴百放
阅读(...) 评论()Excel&数据导入到Sql&Server&2008中
--首先打开SSMS,然后点击左上角的【新建查询(N)】,在右边弹出的窗口中输入一下代码:
----------------------------------------------------------------------------------------
use&TEST&&&
--- ‘TEST’是数据库名字,你可以切换到你想要的数据库或直接输入数据库名字
----根据系统需要使用这几段批处理命令打开相应功能
EXEC sp_configure 'show
advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'Ad Hoc
Distributed Queries', 1;
RECONFIGURE;
----以上为根据实际情况的可选命令
----开始插入数据到TEST数据库的一个新表中
&into newtable_name&
OpenDataSource('Microsoft.Ace.OLEDB.12.0','Data
Source="c:\daoru.xlsx";Extended properties="Excel
12.0;HDR=Yes"')...[sheet1$]
------------------------------------------------------------------------
执行这段代码之前,你需要准备导入的数据。 我用的是Excel 2007,&
Excel文件的名字为“daoru”,放在C盘目录下。
2:& 代码中的select * into newtable_name
&from ...&&
这是把excel中的数据插入到TEST数据库中,并同时新建表名为newtable_name存放插入的数据.
代码中的Office2007的数据库驱动为“Microsoft.Ace.OLEDB.12.0”,
&&&&&&&如果是Office2003的话应改成“Microsoft.Jet.OLEDB.4.0”,
还有Office2007中Excel的“Extended properties”中为“Excel
12.0”&& 而Office2003为“Excel
代码中'Data Source="c:\daoru.xlsx" 就是要导入数据的文件存放路径. (注意后缀:Excel
2007的为.Excel& 2003的为.xls)
代码中的...[sheet1$]&
为表名,格式为:[XXX$]或者XXX$,不需要中括号也行,而且表名不能以数字开头(其实这是几乎所有编程语言的变量命名规则),切记!&
没有修改过名字的话,Excel默认是shee1,shee2,shee3....
当然,你也可以使导入的数据,不用新建表.而是直接导入到数据库已有的表中, 只要稍微修改代码就可以了.
---------------------------------------------------------------------------------------
insert into 已存在的表名&
(字段一,字段二)&&&&
A,B&&&from
OpenDataSource('Microsoft.Ace.OLEDB.12.0','Data
Source="c:\daoru.xlsx";Extended properties="Excel
12.0;HDR=Yes"')...[sheet1$]
---------------------------------------------------------------------------------------
代码二中,A,B表示的意思是Excel中的A列和B列,
但是直接输入A,B是没有用的.
这里还要提醒一点,导入数据的时候,系统默认Excel的第一行数据是字段名.
所以,你可以把Excel的第一行的前两列数据改为A和B,这样就可以了!&
如果Excel中的列数和数据库中的已存在的表的列数相等,也可以改成如下:
---------------------------------------------------------------------------------------
insert into 已存在的表名&&
select& *&&from
OpenDataSource('Microsoft.Ace.OLEDB.12.0','Data
Source="c:\daoru.xlsx";Extended properties="Excel
12.0;HDR=Yes"')...[sheet1$]
---------------------------------------------------------------------------------------
&当然,我们可以利用Data Import for Sql
Server等工具来导入,也可以利用SQL Server 2008的DTS导入(在SQL Server Management
Studio的选择你要导入到的数据库如:TEST,右键选择“任务”——“导入数据”即可.
<img src="/blog7style/images/common/sg_trans.gif" real_src ="/images//4911.jpg" ALT="" STYLE="margin: 0 padding: 0"
TITLE="Excel&数据导入到Sql&Server&2008中" />
标签:&,&,&
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 sql server导入excel 的文章

 

随机推荐