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