工作中经常会遇到,新增表或新增字段,像下面的SQL语句片段这样
IF NOT EXISTS(SELECT C.NAME FROM DBO.SYSCOLUMNS C, DBO.SYSOBJECTS O WHERE O.ID = C.ID AND O.NAME = 'PRSBPN' AND C.NAME = 'X') BEGIN Alter table [PRSBPN] add [Y_UOM] [nvarchar](4) End GO
在自己的电脑上,可以用SQL Server Management Studio的Table Designer来设计,但是到了客户那边,不太可能有机会启动表设计器来添加字段,于是需要一个工具,把自己生成的字段变成SQL语句,客户那边只需要运行一个SQL语句,即可完成添加表和字段的动作。
SQL Server Runner怎么用?
SQL Server Runner可以运行指定的目录中的SQL语句,这一点就可以满足我的需求。使用方法也很直观,打开数据库连接,选定数据库,选择要运行的SQL文件所在的目录,然后执行(Run Scripts)即可。额外的,SQL Server Runner可以把当前的数据库连接,SQL文件目录位置等信息保存起来(xml文件),下次有SQL更新时,把更新后的SQL语句拷贝到指定的目录中,再运行SQL Server Runner打开原来的项目文件,运行一次即可。
CodeProject中另有一个相同作用的功能的,Generating osql Batch Scripts,它争对指定的目录,生成一个OSQL的批处理文件,再通过运行这个批处理文件以达到更新数据库的目的。
可以这样调用它的源代码
OsqlScript oscript = new OsqlScript("C:\\scripts", "C:\\scripts\\ExecuteScripts"); oscript.Server = "MyServer"; oscript.Database = "Northwind"; oscript.UseIntegratedSecurity = true; oscript.UseReportFile = true; oscript.ReportFile = "Report.txt"; //generate the file oscript.Generate();