四、对数据库的基本操作

来源:互联网 发布:知乎不能回答问题 编辑:程序博客网 时间:2024/06/13 14:32

1.   对数据库重命名:

      a. 图形界面操作:

           i.   直接在左侧对象资源管理器中数据库名字上右键->重命名即可;

           ii.  和Windows操作系统对文件重命名一模一样,按键盘F2也行;

      !!!图形界面下对任何一个单位进行重命名的方法都是一样的,不管是对数据库、表、视图等,上述重命名方法都成立

      b. 使用SQL语句进行重命名:

           i.   语法格式为:ALTER DATABASE 数据库原名称 MODIFY NAME = 数据库新名称

           ii.  ALTER即修改的意思,ALTER DATABASE 数据库原名称即表示修改指定的数据库;

           iii. MODIFY即修饰的意思,这里指修饰数据库的某个属性,这里修饰的是NAME名字属性,将其修改成新的名称;

      c. 使用存储过程即函数修改数据库名称:

           i.   语法格式为:EXEC sp_renamedb ‘数据库原名称', '数据库新名称'

           ii.  注意这里名称两边要用单引号引起来,而ALTER语句则不用;

           iii. EXEC即execute的缩写,执行的意思,这里是指执行一个函数(即一个存储过程);

           iv. sp是saving process的缩写,即存储过程;

           v.  sp_renamedb就是修改数据库名称这一存储过程,实质是一个系统函数;

           vi. 该函数的两个参数按先后顺序为先原名后新名;

           v.  最为规范的存储过程修改方式为:

                EXEC sp_dboption '原名', 'SINGLE', True

                EXEC sp_renamedb '原名', ’新名'

                EXEC sp_dboption '新名', ‘SINGLE', True

                注意:dboption是数据库选项函数,用于将修改的属性存入数据库,这里修改名称前需要将限制访问选项的SINGLE设为True,即指定只能一个人访问该数据库,这样可以避免多人同时访问数据库而影响对数据库名称的修改,修改完成后还需要将SINGLE设为False,否则会影响访问效率;


2.   修改数据库文件的初始大小、自增量等信息:

       直接在图形界面下进行:对象资源管理器中直接在目标数据库名上右键->属性->左侧选择页中的文件选项,然后在相应的栏目中进行修改,以扩大初始大小并调整自增量;


3.   收缩数据库文件(也是直接在图形界面下操作)和数据库:

      a. 对象资源管理器中在目标数据库名上右键->任务->收缩->文件或数据库;

      b. 如果收缩的是文件则可以选择要收缩的文件类型(数据文件还是日志文件)、如果是数据文件可以选择哪个文件组的文件,系统会显示选中文件的空闲空间,然后点击确定就可以释放掉该文件空闲的空间了;

      c. 如果收缩的是数据库,则可以选择收缩空闲的页并制定收缩后的最大可用空间即可;


4.   向目标数据库中添加和删除文件:

       a. 图形界面下:数据库名上右键->属性->左侧选择页上点击文件选项,然后点击添加,直接在相应的栏中设置文件逻辑名、文件类型、文件组、初始大小、路径等等信息即可;

       b. 使用ADD语句进行添加:            

ALTER DATABASE 目标数据库名ADD FILE//添加数据文件//可以添加多个(NAME = 逻辑名,FILENAME = '完整的绝对路径\....ndf',SIZE= 7,MAXSIZE = 12,FILEGROWTH = 1),(.....),(.....)//注意要添加另一种类型的文件时一定要再写一遍ALTER语句//注意前面最后一个定义文件的括号后面不用加逗号了,否则会报错的ALTER DATABASE LtsDataBaseADD LOG FILE//添加日志文件//同样也可以添加多个(NAME  = 逻辑名,FILENAME = '....ldf',SIZE= 7,MAXSIZE = 12,FILEGROWTH = 1),(.....),(.....)

      c. 删除文件使用REMOVE语句:

          ALTER DATABASE XXX

          REMOVE FILE XXX, XXX, XXX.......

          可以删除多个,这里的文件名是逻辑文件名而不是文件系统中的文件路径;

          必须重新输入ALTER语句,不能和前面的增加文件连用

5.   删除指定数据库:

      a. 图形界面下:直接右键目标数据库名->删除->确定,即可,或者直接左击目标数据库名按键盘Delete后确定即可;

      b. SQL语句:DROP DATABASE 数据库名1, 数据库名2, 数据库名3.........

      c. 这里的删除是指彻底删除,完全丢失,文件系统和回收站里都没有了,不能再找回;

      d. 使用SQL语句删除不会有删除提示,所以一定要谨慎小心,千万不能误删系统数据库,否则会导致SQL Server 2008无法启动;


6.   分离和附加数据库:

       a. 分离是指将一个数据库和SQL Server 2008的实例相分离,暂存在tempdb中,而不是删除(是不可恢复的),在需要的时候还可以将分离出去的数据库附加回来;

       b. 图形界面下分离指定数据库:指定数据库名上右键→任务→分离→确定,即可;

       c. 图形界面下附加指定数据库:对象资源管理器的数据库节点上右键→附加→添加→在DATA文件夹里选择需要附加的数据库之后确定即可;

       d. 使用存储过程分离指定数据库:EXEC sp_detach_db 指定数据库名

            注:detach即分离的意思,该函数的只能有一个数据库名参数,不能在一条语句中分离多个数据库,必须重复使用该语句才能分离多个数据库;

       e. 使用SQL语句附加数据库:

            CREATE DATABASE 新数据库名   //这里是将分离的数据库附加给这个新创建的数据库

            ON  //这个新数据库建立在那些文件之上

            (

FILENAME = '分离出去的那个数据库的主文件路径'      //该路径必须存在,如果更新过就使用更新过的那个

            )

            FOR ATTACH    //这个两个关键字非常关键,表示上述路径的文件用于附加,如果用于附加就只要写一个主文件就行了,其余的次文件和日志文件都会自动检测并跟随主文件一起附加的,但是如果这句话不写就代表着仅仅试一次简单的创建数据库,而创建出来的数据库就只包含上述一个文件,而其它文件都不会被包含进去;

            //注:至少要写一个主文件,如果不写主文件而写其它文件则无效,因此一般只写一个主文件即可