SQL Server数据库的使用要比Access复杂的多,你可以使用企业管理器来创建、修改和删除数据表,同时,由于SQL Server是一个企业级的数据库应用,因此你还需要使用相关的管理软件来进行用户和用户权限的管理。
当然,在日常的使用中,你还可能对数据进行导入导出的操作,这时还需要用到导入导出向导进行数据在两个数据库服务器之间进行转移。
除此之外,我还将简单讲解查询分析器的使用,以方便进行数据库的调试。
在这里我还需要说明,由于本书的主题是ASP,因此我所讲到的SQL Server操作仅是于此有关的常用操作,对于SQL Server的高级使用是非常复杂的,你如果有兴趣的话,我建议你可以阅读专门讲解这方面的图书来学习,当然,阅读SQL Server自带的帮助文档也是个不错的方法。
Management Studio 是为 SQL Server 数据库管理员和开发人员提供的新工具。SSMS(SQL Server Management Studio的简写)提供了用于数据库管理的图形工具和功能丰富的开发环境。
在SQL Server 2005所提供的Management Studio中将SQL Server 2000的企业管理器、Analysis Manager和SQL查询分析器的功能集成在了一起,还可用于编写 MDX、XMLA 和 XML 语句。
首先我们来启动SSMS,在开始菜单的“Microsoft SQL Server 2005”项目下运行“SQL Server Management Studio”,即可打开SSMS,如图1.36所示。
图1.36
在首次运行时,将会对系统进行配置,而后进入如图1.37所示的连接数据库的界面。
图1.37
这里有这样几项需要填写:
服务器类型,在这里可以选择连接到数据库引擎本身,还是数据库引擎提供的分析服务或者商业智能服务,由于我们仅使用数据库服务,因此这里一般选择“数据库引擎”。
服务器名称,这里填入服务器的地址,如果是本机或者局域网地址,填写计算机名称即可,如果是互联网上的服务器,则可以填写服务器的域名或者IP地址,如果端口不是默认的1433端口,还应当填写端口号,格式是IP,端口号,例如有某个远程服务器,其IP地址是60.10.136.4,端口更改为44333,则此处应当填写60.10.136.4,44333。同时,如果在安装时指定了实例名,则此处还应当填写实例名,例如图1.37所示中,此处填写为“HANGUOFENG\SQL2005”,这说明我连接HANGUOFENG这台服务器,其实例名为SQL2005。
身份验证,这里可以选择“Windows身份验证”或者“SQL Server 身份验证”,一般来讲,在连接本机所安装的SQL Server时,可以使用Windows身份验证,而不用输入具体的用户名和密码,但是在连接互联网上的数据库服务器时,则一般需要使用SQL Server身份验证,并输入用户名和密码来连接。
由于这里我们是在本机使用,因此选择“Windows身份验证”并点击“连接”按钮,进入本机数据库的管理界面,如图1.38所示。
图1.38
你不难发现,和大多数Windows提供的管理器类似的,SSMS的窗口主要分为三个部分,即顶部的菜单栏,左部的对象资源管理器以及右部的主要操作窗口。
首先我们来使用SSMS建立一个数据表,这个数据表是在前面的讲解中我们是在Access中建立的Book表,现在我们来看如何在SQL Server中建立它。
首先在“对象资源管理器”中“数据库”子项上点击右键,打开“新建数据库”窗口。在此首先输入数据库名称Book,其他项目保持默认即可,稍后我们会简单讲解各个选项的含义。如图1.39所示。
图1.39
在图中,“所有者”是确定在SQL Server中,我们新建的数据库的所有者。与Access不同的,SQL Server是一个多用户操作的数据库环境,这与Windows类似,因此需要指定数据库的所有者,可以通过实现在SQL Server中新建用户,而后将数据库的所有者指定给这个用户,从而实现只有这个用户和系统管理员(sa)可以访问该数据库,其他没有权限的用户是不可以访问的,这样就实现了数据库的安全功能。
“数据库文件”是数据库的数据和日志文件的存放未知,默认为SQL Server安装目录下的数据存储目录,如果考虑到重装系统可能造成的文件丢失,此处则应当更改为其他磁盘的目录,当然,这还可以通过数据库备份来解决。
在此窗口中点击“确定”按钮,即可完成Article数据库的添加。此时SSMS将返回开始的窗口,我们可以看到,在“对象资源管理器”中已经出现了新建的数据库Book。
接下来我们要为Book这个数据库建立数据表,首先我们需要建立一个名为Book的表,在对象资源管理器的导航中双击Book表展开管理树,而后右键点击击Book下的“表”子项,选择“新建表”,此时右部的主要窗口部分将打开表编辑器,在此可以增加数据列(即字段),如图1.40所示。
图1.40
在这个窗口中,我们可以在中间的数据列编辑窗口添加并设定数据列,你应该已经发现,这里的数据类型与Access中的不同,例如,Access中的“文本”类型对应这里的nvarchar,Access中的数字对应这里的int等等。不过你不用担心,本书在使用不同数据库来讲解实例时会根据不同的数据类型列出数据库结构的。
在右部的属性窗口,你可以设定数据表的信息,如数据库名称、标识列等,注意这里我们需要将BookID设为标识列,以使其具有和Access中自动编号一样的效果。
在数据库设定的最后和在Access中类似的,需要右键选中BookID列,并设定为“主键”。
完成以上操作后,在导航栏中点击图标保存数据表,即可完成Book数据库和Book数据表的创建。
[NextPage]
毫无疑问的,我们在平常的网站运行时,需要经常的备份数据库,以防由于服务器出现故障或者黑客入侵所导致的数据损失出现,在Access中备份数据库非常简单,只需要复制数据库文件就可以了,而在SQL Server中,由于数据库文件是被锁定的,因此不可以通过简单的直接复制的方法来对数据库进行备份或者恢复,我们需要使用SSMS的备份功能。
首先运行SSMS并连接到数据库,而后在“对象资源浏览器”中右键点击刚才建立的数据库“Book”,选择“任务”项目下的“备份”,如图1.41所示。
图1.41
此时将打开数据库备份窗口,如果没有特殊需求,这里的各项保持默认即可,但是这里我建议你修改备份目的文件夹为除C:盘以外的其他磁盘,这样可以保证在重新安装操作系统后,数据文件不会丢失,如图1.42所示。
图1.42
点击确定,程序将会把当前的Book数据库备份至我们填写的目录D:\sqlbackup下的book.bak文件中。此时就完成了对这个数据库的备份。
接下来我们再来学习对数据库备份文件的恢复。
首先打开SSMS,连接至数据库服务器,而后在“对象资源浏览器”中右键点击刚才建立的数据库“Book”,选择“任务”项目下的“还原”中的“数据库”。
此时将会打开数据库还原窗口,如图1.43所示。
图1.43
如果你以前已经备份过了数据库,那么在这个窗口中会列出以前备份的记录以供还原,此时直接选中一个备份集,并点击“确定”按钮即可。
如果要还原的备份集在这里没有记录,那么就需要手动来指定数据库的备份文件。
手动指定的过程如下:首先选中“指定用于还原的备份集的源和位置”选项下的“源设备”,此时改文本框右部的浏览按钮变为可点击状态,点击这个按钮,会要求用户指定备份源,在这里点击“添加”按钮,并选择我们的备份文件,例如D:\SqlBackUp\book.bak,将备份集添加到恢复列表中,如图1.44所示。
图1.44
最后点击“确定”按钮,将会把备份集添加至“还原数据库”的窗口,此时即可选中备份集并完成恢复的操作。
另外,在进行数据库恢复时经常出现的一个问题就是,当数据库正在运行时,试图回复数据库,则会出现如图1.45的错误提示。
图1.45
出现这个错误是因为数据库正在运行,而要备份的数据库试图重写现有数据库的日志等文件而造成的冲突,这时就需要我们在数据库还原窗口左部导航中点击“选项”,并选中“覆盖现有数据库”来对当前要回复的数据库进行强制重写。
[NextPage]
除了对数据库的备份恢复之外,我们还经常进行的维护操作是数据的导入和导出。
数据的导入一般用于将远程的数据备份到本机,而数据的导出则是将本机的数据导出到远程的数据库服务器,以实现网站数据库的发布。
数据的导入和导出过程是类似的,只不过导入过程在选择源服务器时是选择远程的数据库服务器,目标服务器选择本机数据库服务器,而导出过程则是在选择源服务器时选择本机,服务器选择远程数据库服务器,这里以导出为例,讲解将本机刚刚创建的Book数据库导出到www.hanguofeng.com这台数据库服务器中的导出过程。
与数据库备份过程类似的,在“对象资源管理器”中右键点击Book数据库,在右键菜单中选择“任务”,选择“任务”下的“导出数据”项目。
此时将打开“SQL Server导入和导出向导”(在以往的版本中被称为DTS,即Data Transfer Service,但是在SQL Server 2005版本中已经更改为SSIS,即SQL Server Interation Services)。
启动向导后,首先需要选择数据源,由于是导出数据,因此此处已经默认填写了本机数据库服务器的地址,并选中了Book表(如图1.46所示),而后点击“下一步”按钮,进入目标填写窗口,我们在“服务器名称”文本框中填写目标服务器地址www.hanguofeng.com,注意由于是连接到远程服务器,因此我们需要选中“使用SQL Server身份验证”,并输入在www.hanguofeng.com这台SQL Server服务器中的SQL Server用户名和密码,输入完毕后,点击“刷新”按钮,将读取远程数据库中的数据库列表,可以在这个列表中选择一个数据库作为导出的目标,也可以点击“新建”按钮,新建一个数据库,如图1.47所示。
图1.46
图1.47
填写完毕数据源和目标后,将进入“指定表和查询”窗口,由于我们是将数据库全部传输,因此这里选择“复制一个表或多个表或视图的数据”,除此之外,如果需要对数据进行筛选,则可以选择“编写查询以指定需要传输的数据”,来实现对数据的筛选。选中完毕后点击“下一步”按钮,将进入数据表的选择窗口,这里选择新建的“Book”数据表,并点击“下一步”。此时导入和导出向导进入最后一步,此时可以选择保存SSI包(即我们刚才填写的数据库导出信息),点击“下一步”按钮,将进入数据库导出的实际过程,视网速和数据量大小,经过一段时间,数据即可完成在两个服务器之间的传输。
以上我们一起学习了通过SSIS在两个SQL Server服务器之间的数据传输,当然,SSIS的功能还不止于此,除了在两个SQL Server服务器之间传输数据之外,还可以利用DTS将SQL Server中的数据库转换到Access、Excel、Oracle等数据库中,这是非常实用的功能。
这里我们来简单讲解使用SSIS将SQL Server数据库导出至Access中,这个过程与导出SQL Server至另外的SQL Server服务器是类似的,你可以按照前面的操作一直设定至数据源选项,在数据目标选择窗口中,我们需要更改“目标”为Microsoft Access,并选择数据库文件,如图1.48所示。
图1.48
在设定完毕数据目标后,其他过程也与上述SQL Server到SQL Server的转换没有区别,这里就不再赘述了。
最后,我要提示你的是,SQL Server到Access的数据表转换并不是一个完美的转换,打开转换目标的Access,你会发现,这里原来在SQL Server中自动编号的BookID数据列在Access中并非是自动编号了,另外原有主键也没有指定,因此还需要我们手动的进行一些小改进。
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛