工作中經(jīng)常會遇到,新增表或新增字段,像下面的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來設(shè)計,但是到了客戶那邊,不太可能有機會啟動表設(shè)計器來添加字段,于是需要一個工具,把自己生成的字段變成SQL語句,客戶那邊只需要運行一個SQL語句,即可完成添加表和字段的動作。
SQL Server Runner怎么用?
SQL Server Runner可以運行指定的目錄中的SQL語句,這一點就可以滿足我的需求。使用方法也很直觀,打開數(shù)據(jù)庫連接,選定數(shù)據(jù)庫,選擇要運行的SQL文件所在的目錄,然后執(zhí)行(Run Scripts)即可。額外的,SQL Server Runner可以把當(dāng)前的數(shù)據(jù)庫連接,SQL文件目錄位置等信息保存起來(xml文件),下次有SQL更新時,把更新后的SQL語句拷貝到指定的目錄中,再運行SQL Server Runner打開原來的項目文件,運行一次即可。
CodeProject中另有一個相同作用的功能的,Generating osql Batch Scripts,它爭對指定的目錄,生成一個OSQL的批處理文件,再通過運行這個批處理文件以達到更新數(shù)據(jù)庫的目的。
可以這樣調(diào)用它的源代碼
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();