在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
解决方法: 复制代码 代码如下: /* SCRIPT: CREATE_DB.sql */ /* 创建TestDB数据库 */ -- This is the main caller for each script PRINT '开始创建TestDB数据库' :On Error exit :r c:\Scripts\CREATE_TABLES.sql PRINT '创建完毕' 脚本2:CREATE_INDEXES.sql 复制代码 代码如下: /* 创建索引 */ PRINT '开始创建索引' GO USE TestDB GO IF NOT EXISTS ( SELECT 1 FROM SYS.INDEXES WHERE NAME = 'IX_EMPLOYEE_LASTNAME' ) CREATE INDEX IX_EMPLOYEE_LASTNAME ON DBO.EMPLOYEE(LASTNAME, FIRSTNAME) GO IF NOT EXISTS ( SELECT 1 FROM SYS.INDEXES WHERE NAME = 'IX_TIMECARD_EMPLOYEEID' ) CREATE INDEX IX_TIMECARD_EMPLOYEEID ON DBO.TIMECARD(EMPLOYEEID) GO 脚本3:CREATE_PROCEDURES.sql 复制代码 代码如下: /* 创建存储过程 */ PRINT '正在创建存储过程' GO USE TestDB GO IF OBJECT_ID('GET_EMPLOYEE_TIMECARDS') IS NOT NULL DROP PROCEDURE DBO.GET_EMPLOYEE_TIMECARDS GO CREATE PROCEDURE DBO.GET_EMPLOYEE_TIMECARDS @EMPLOYEEID INT AS SET NOCOUNT ON SELECT * GO 脚本4:CREATE_TABLES.sql 复制代码 代码如下: /* 创建数据表 */ PRINT '正在创建数据表 ' GO USE TestDB GO IF OBJECT_ID('EMPLOYEE') IS NOT NULL DROP TABLE DBO.EMPLOYEE GO CREATE TABLE DBO.EMPLOYEE ( EMPLOYEEID INT IDENTITY(1, 1) NOT NULL PRIMARY KEY , FIRSTNAME VARCHAR(50) , LASTNAME VARCHAR(50) ) GO IF OBJECT_ID('TIMECARD') IS NOT NULL DECLARE @TOTAL_TABLES INT 脚本5:TABLE_INSERTS.sql 复制代码 代码如下: /* 插入表数据 */ PRINT 'TOTAL TABLES CREATED = ' + CAST(@TOTAL_TABLES AS VARCHAR) 第二步:在C盘根目录下创建一个bat文件create_db.bat,用于执行SQLCMD: 双击文件可以看到:
执行中:
执行后,该创建的东西都创建出来了:
由于执行的顺序已经在脚本1中定义好,所以直接执行即可,并且执行成功。 总结: 根据个人经验,还是开发一个批量执行工具会比较好,这个方法在少量脚本的时候可以选用。 |
请发表评论