利用T—SQL创建数据库

来源:互联网 发布:网络信息安全论文 编辑:程序博客网 时间:2024/05/21 06:42

当项目经测试基本满足客户需求后,需要部署在客户的实际环境中运行时。我们在部署前需要考虑的是:后台的数据库如何移植到客户的计算机中?考虑到各种数据库的版本的兼容性,行之有效的办法就是编写比较通用的SQL语句,包括创建数据库,数据表,添加约束,插入测试数据等。编写完毕后,存入*.sql文件中,最后复制到客户的计算机中,并执行*.sql文件中的SQL语句,从而实现后台数据库的移植。所以,我们还需要掌握如何使用SQL语句,实现创建数据库,数据表,添加约束等。

                                                        创建数据库

Code:
  1. Create DataBase stuDB   
  2. on primary                               --文件组   
  3. (   
  4. name = 'stuDB_data',        --数据库的逻辑名称   
  5. filename = 'D:/stuDB_data.mdf',   --数据库的物理名称   
  6. maxsize = unlimited,                         --数据库的最大容量   
  7. size = 3mb,                                          --初始大小   
  8. filegrowth = 1mb                                --数据库的增量   
  9. )   
  10. log on               --指明事务日志文件的明确定义   
  11. (   
  12. name = 'stuDB_log',   
  13. filename = 'D:/stuDB_log.ldf',   
  14. maxsize = unlimited,   
  15. size = 1mb,   
  16. filegrowth = 10%   
  17. )   
  18. go  

我们来具体看一下以上代码中的参数:

(1)stuDB是数据库的名称,最长为128个字符

(2)primary:该选项是一个关键字,指定主文件组中的文件,可忽略不写

(3)log on 指明事务日志文件的明确定义

(4)name 指定数据库的逻辑名称,这是在SQL SERVER系统中使用的名称,是数据库在SQL SERVER中的标识符

(5)filename 指定数据库所在文件的操作系统文件名称和路径,该操作系统文件名和name逻辑名称一一对应。

(6)size  指定数据库的初始容量大小

(7)maxsize 指定操作系统文件可以增长到的最大尺寸 unlimited关键字是不限制的意思,但是在在日志文件中,毫无意义,因为日志文件本身自己就有大小限制,最大值为2097152MB

(8) filegrowth 指定文件每次增加容量的大小 ,当指定数据为0时,表示文件不增长。

                                                        删除数据库

如果在SQL SERVER中已经存在了上面创建了的stuDB数据库,再次运行以上程序时,就会报错:该数据库已存在,创建失败。

那该怎么办呢?

所以,我们应该在创建数据库之前预先检测我要创建的该数据库是否已存在,如果存在,就应先删除。

删除数据库的语法如下:

Drop DataBase 数据库名

现在的问题是如何检测到stuDB数据库的存在?

SQL SERVER 将所有数据库的清单存放在了master系统数据库的sysdatabases表中,只需要查看该表是否存在于该表中就可以了。

示例:

Code:
  1. use master       --设置当前数据库为master,以便访问sysdatabases表   
  2. go   
  3. if exists(select * from sysdatabases where name = 'stuDB')   
  4. drop database stuDB   
  5. go   
  6. create DataBase stuDB   
  7. on  
  8. (   
  9. --……………………   
  10. )   
  11. log on  
  12. (   
  13. ---……   
  14. )  

Exists(查询语句)检测某个查询是否存在。如果查询返回都记录不为空,则说明存在。否则,不存在。