原文:[SQL Server]一次执行资料夹内的.sql 指令码

初始资料库时,我们Developers们会准备很多.sql指令码来建立资料表、检视甚至初始资料,那麽要怎麽一次执行资料夹内的*.sql或是指定的几个.sql指令码?

来节省一点点初始化资料库的作业时间。

好在我们有MSDN使用sqlcmd 执行指令码的范例:

sqlcmd -S myServer\instanceName -i C:\myScript.sql

如果只有几个,串成bat档或是powershell也很方便,但如果很多个,

一来要重复写很多次,二来也没办法Handle到指定资料夹内的.sql都要执行的需求

很快的从网路找到答案,然後我们改写了语法,并且把执行的log写到指定的Log档名中。

1.执行指定资料夹内的.sql

@echo off
rem 资料库IP\资料库执行个体名称
set dbIp=stanley\SQL2014
rem 资料库名称
set dbName=TSQL2014
rem 登入帐号
set dbUsrAcc=ImDeveloper
rem 使用者密码
set dbUsrPwd=Passw0rd
rem 整理完毕的SQL指令集资料夹位置
set batchFilePath="C:\TestDB\db_script\folder" rem 程式开始执行
cd %batchFilePath% FOR /f %%i IN ('DIR *.Sql /B') do call :RunScript %%i
GOTO :END :RunScript
Echo Executing %1
sqlcmd -S %dbIp% -d %dbName% -U %dbUsrAcc% -P %dbUsrPwd% -i %1 >>view.log
Echo Completed %1 :END

2.透过清单.sql档案执行

list.sql 清单(sql01~06和bat档同目录)

:r .\sql01.sql
:r .\sql02.sql
:r .\sql03.sql
:r .\sql04.sql
:r .\sql05.sql
:r C:\testDB\db_script\sql06.sql

批次档内容

@echo off
rem 资料库IP\资料库执行个体名称
set dbIp=stanley\SQL2014
rem 资料库名称
set dbName=TSQL2014
rem 登入帐号
set dbUsrAcc=ImDeveloper
rem 使用者密码
set dbUsrPwd=Passw0rd
rem 清单.SQL档放置路径
set dbSqlFilePath="C:\test\db_script\list.sql" rem 程式开始执行
cd %batchFilePath%
sqlcmd -S %dbIp% -d %dbName% -U %dbUsrAcc% -P %dbUsrPwd% -i %dbSqlFilePath% >view.log
PAUSE @echo on

今天同事来问,一整个忘记当初怎麽串的,快笔记下来。

参考:

使用 sqlcmd 连接至 Database Engine

使用 sqlcmd 执行 Transact-SQL 指令码档案

Run all SQL files in a directory

SQL Server – Executing Multiple Script Files Using SQLCMD

[SQL Server]一次执行资料夹内的.sql 指令码的更多相关文章

  1. c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程

    c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...

  2. SQL Server作业没有执行的解决方法

    SQL Server作业没有执行的解决方法  确保SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行    设置方法:  我的电脑--控制面板--管理工具--服务--右键 SQLSE ...

  3. SQL SERVER深入学习学习资料参考

    SQL SERVER深入学习学习资料参考 1.微软Webcast<sql server 2000完结篇>. 尽管微软Webcast出了很多关于Sql Server的系列课程,但是最为深入讲 ...

  4. 谈一谈SQL Server中的执行计划缓存(上)

    简介 我们平时所写的SQL语句本质只是获取数据的逻辑,而不是获取数据的物理路径.当我们写的SQL语句传到SQL Server的时候,查询分析器会将语句依次进行解析(Parse).绑定(Bind).查询 ...

  5. SQL Server Profiler监控执行语句

    SQL Server Profiler监控执行语句,这个功能主要用在实时的监控对数据库执行了什么操作,从而及时有效的跟踪系统的运行. 常规配置选项,名称.模板.保存到文件(可以复用). 事件选择,可以 ...

  6. SQL Server Management Studio 执行超大脚本文件

    SQL Server Management Studio 执行超大脚本文件 启动cmd.exe , cd 到C:\Program Files (x86)\Microsoft SQL Server\11 ...

  7. 浅析SQL Server中的执行计划缓存(上)

    简介 我们平时所写的SQL语句本质只是获取数据的逻辑,而不是获取数据的物理路径.当我们写的SQL语句传到SQL Server的时候,查询分析器会将语句依次进行解析(Parse).绑定(Bind).查询 ...

  8. SQL Server Agent作业执行CmdExec(bat)命令报权限问题

    写了一个bat命令,定期去清理一些SQL Server的Dump文件,然后配置成SQL Server作业,作业执行时报权限错误,具体错误信息如下所示: Message Executed as user ...

  9. 第十六周翻译-SQL Server复制的阶梯:第1级 - SQL Server复制简介

    SQL Server复制的阶梯:第1级 -  SQL Server复制简介 作者:Sebastian Meine,2012年12月26日 翻译:赖慧芳 译文: 该系列 本文是Stairway系列的一部 ...

随机推荐

  1. 关于json中对象的删除

    一个json对象在后台产生了,但是有些数据可能无效或者不合法,所以需要在前台作些例外处理,比如删除掉. json的删除有很多种,直接用过 delete json对象方式. 举例如下 Js代码 var ...

  2. Windows系统下搭建Jenkins环境

    1. 安装JDK JDK下载地址:  http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.ht ...

  3. user.table.column, table.column 或列说明无效

    Oracle统计采用别名出错(user.table.column, table.column 或列说明无效) >>>>>>>>>>>& ...

  4. springMvc中406错误解决,springMvc使用json出现406 (Not Acceptable)

    springMvc中406错误解决, springMvc使用json出现406 (Not Acceptable) >>>>>>>>>>> ...

  5. H TML5 之 (6)下雨效果

    在对HTML5进行研究之后,有了一点想法,思考出游戏其实感觉就是四个步骤 1.创建一个你需要的对象,赋予属性(一些影响方法的属性),方法(运动,叫....) 2.实例化这个对象,让它成为一个或者多个个 ...

  6. Spring3 + Spring MVC+ Mybatis 3+Mysql 项目整合

    项目环境背景: 操作系统:win7 JDK:1.7 相关依赖包,截图如下:

  7. jQuery 效果方法

    jQuery 效果方法 下面的表格列出了所有用于创建动画效果的 jQuery 方法. 方法 描述 animate() 对被选元素应用"自定义"的动画 clearQueue() 对被 ...

  8. java_设计模式_迭代器模式_Iterator Pattern(2016-08-12)

    迭代子(Iterator)模式又叫游标(Cursor)模式,是对象的行为模式. 定义:提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节. 类型:行为类模式 类图: 如果要问java中 ...

  9. Mediator 模式

    在面向对象系统的设计和开发过程中,对象之间的交互和通信是最为常见的情况,因为对象间的交互本身就是一种通信.在系统比较小的时候,可能对象间的通信不是很多.对象也比较少,我们可以直接硬编码到各个对象的方法 ...

  10. [LeetCode OJ] Roman to Integer

    Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 t ...