SQLServer按顺序执行多个脚本的方法(sqlcmd实用工具使用方法)


当前第2页 返回上一页

    SELECT  *
    FROM    DBO.EMPLOYEE E
     JOIN DBO.TIMECARD T ON E.EMPLOYEEID = T.EMPLOYEEID
    WHERE   E.EMPLOYEEID = @EMPLOYEEID
    ORDER BY DATEWORKED

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
    DROP TABLE DBO.TIMECARD
GO
CREATE TABLE DBO.TIMECARD
    (
TIMECARDID INT IDENTITY(1, 1)
NOT NULL
PRIMARY KEY ,
EMPLOYEEID INT NOT NULL ,
HOURSWORKED TINYINT NOT NULL ,
HOURLYRATE MONEY NOT NULL ,
DATEWORKED DATETIME NOT NULL
    )
GO

DECLARE @TOTAL_TABLES INT
SET @TOTAL_TABLES = 2

脚本5:TABLE_INSERTS.sql

代码如下:

/* 插入表数据 */

PRINT 'TOTAL TABLES CREATED = ' + CAST(@TOTAL_TABLES AS VARCHAR)
GO
PRINT '正在插入数据到表 EMPLOYEE'
GO
USE TestDB
GO
INSERT  INTO DBO.EMPLOYEE
 ( FIRSTNAME, LASTNAME )
 SELECT  'JOHN' ,
  'DOE'
GO
INSERT  INTO DBO.EMPLOYEE
 ( FIRSTNAME, LASTNAME )
 SELECT  'JANE' ,
  'DOE'
GO
INSERT  INTO DBO.EMPLOYEE
 ( FIRSTNAME, LASTNAME )
 SELECT  'JEFF' ,
  'DOE'
GO

第二步:在C盘根目录下创建一个bat文件create_db.bat,用于执行SQLCMD:

双击文件可以看到:
在执行前,是没有TestDB:

 

执行中:

 

执行后,该创建的东西都创建出来了:

 

 

由于执行的顺序已经在脚本1中定义好,所以直接执行即可,并且执行成功。

总结:

根据个人经验,还是开发一个批量执行工具会比较好,这个方法在少量脚本的时候可以选用。

更多SQL内容来自木庄网络博客


打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...