Professional Documents
Culture Documents
5 创建 SQLserver 数据库
际应用中使用这种方法。
比如说恢复。
重点:
介绍了通过 IS 如何联接数据库服务
介绍了如何在 IS 中加入脚本并执行
介绍了如何在安装包运行过程中替换脚本中的特定字符,来实现动态决定数据库的创
建路径
包含了部分脚本的使用说明
说明:本人水平有限,在本文中为了说清楚问题,不保证所描述的内容是科学的,只
保证结果是正确的。
1 数据库简介
SQL 服务中。这时候,我们应该得到如下几个的建库脚本文件,或者是包含如下全部内
容的的脚本文件:
1.1 创建一个空数据库的脚本。
--创建数据库 IS_CreateDatabase
IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name =
N'IS_CreateDatabase')
DROP DATABASE [IS_CreateDatabase]
GO
CREATE DATABASE [IS_CreateDatabase] ON (NAME = N'Cactus_Data',
FILENAME = N'C:\IS_CreateDatabase.mdf' , SIZE = 102, FILEGROWTH = 10%)
LOG ON (NAME = N'Cactus_Log', FILENAME =
N'C:\IS_CreateDatabase_log.ldf' , SIZE = 6, FILEGROWTH = 5%)
GO
--结束
脚本说明:一个数据库实际上在本地硬盘对应两个物理文件,数据文件“.mdf”和日
志文件“.log”。在这个建库脚本中,这两个文件默认被创建在 C 盘根目录,我们在后面
的制作安装包中,会讲解如何在运行时更改这个路径
1.2 在这个数据库中建表,建视图,建存储过程的脚本。
--创建两个表
USE [IS_CreateDatabase]
GO
CREATE TABLE [dbo].[IS_TESTTABLE] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[name] [varchar] (100) ,
[old] [int] ,
[memo] [varchar] (100)
) ON [PRIMARY]
GO
--在这里可添加建视图脚本,建存储过程脚本
--建表结束
1.3 在这个数据库中插入程序运行的基本数据,也就是初始化数据。
--初始化数据
USE [IS_CreateDatabase]
GO
INSERT INTO IS_TESTTABLE([name],old,memo) VALUES('IS 使用者',30,'SQL
建库测试')
GO
--初始化结束
2 开始 IS 历程
方请参考论坛中的《IS 入门指南》
2.1 建立新工程
这里依然使用 InstallScript
llScript MSI Project 工程类型,是出于本人的习惯,具体也解释不
清楚,感觉这个工程类型功能比较全。
2.2 进入向导
继续,直到出现下面的画面,稍作修改:
修改默认的安装路径。继续………..
联接时默认的参数:服务器名,我们默认设置为“(local)
”,身份认证我们选择 SQL 服务
验证,用户名默认为“SA”即可。
在新创建的联接上右键,选择 Insert Script files,来导入我们先前做好的建库脚本。
导入完成后,得到如图结果。
数据库设置基本完成。这时候,一个通过 IS 来创建数据库的安装包基本上就就绪了,
你完全可以进行编译后执行。大家可以去试一下。
2.3 这个安装包存在的最大问题:
数据库文件被创建在了 C 盘根目录,也就是我们在安装时无法指定数据库文件的安
装目录。这个问题的解决,也是这个教程中唯一的亮点,就是如何更改数据库建库脚本中
的固定目录,允许用户在安装过程中,选择或输入安装路径。
2.4 更改安装路径
这么一个认识,我们要想在建库时改变建库文件的创建路径,唯一可以做的就是在 IS 执
比如说“D:\SQLDATA”等。而 IS 正好提供了我们这样的功能。
换是在安装时进行的。
但是,这还并不是我们需要的,因为,数据库要安装在哪个目录,是在安装时才知道
入[INSTALLDIR]。这样,在安装时,我们选择了安装的目录,执行建库语句时,“C:\”
便被替换成了程序的安装路径,达到指定路径的目的。
们这个安装包中包括了程序文件的安装和数据库的创建,而安装要求程序的安装路径和数
本中“C:\”,必须要使用自定义的变量来获取用户指定的路径,然后替换建库脚本中的
“C:\”。
用变量获取用户指定的路径,这个我们应该都没有问题,这里重点解释一下如何将这
个获取的路径传递到建库脚本中并进行替换。
给这个变量赋值――选择路径)。
就叫 IS 的特征变量吧),随便给他个默认值。
OK,收工!