国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

了解SQL2005中的SMO對象使用(-)

2024-07-21 02:12:07
字體:
來源:轉載
供稿:網友

1、簡介:
  在這系列文章中,我將示范如何使用smo(sql management objects)來實現多種通用的數據庫管理任務,比如:備份、恢復、索引處理、完整性檢查等
  在此文中我們將集中如何編譯一個smo應用程序和如何使用smo連接到sql server并獲得一些服務器信息,示例代碼將分別使用vb.net、c#和vbscript。如果你沒有使用visual studio 2005,我將介紹如何用命令行進行編譯操作
  
2、編譯一個smo應用程序:
  要使用smo對象在.net應用程序,我們必須添加smo assemblies應用程序中,在visual studio 2005這是非常容易的,通過選擇project>add reference 菜單項,然后選擇下面assemblies即可
  microsoft.sqlserver.connectioninfo
  microsoft.sqlserver.smo
  microsoft.sqlserver.smoenum
  microsoft.sqlserver.sqlenum
 
  當然,如果你想cool一點,你可以用命令行來編譯,如:
   [visual basic]
    
   vbc /t:exe c:/smotest.vb /r:
   "c:/program files/microsoft sql server/90/sdk/assemblies/microsoft.sqlserver.connectioninfo.dll",
   "c:/program files/microsoft sql server/90/sdk/assemblies/microsoft.sqlserver.smo.dll",
   "c:/program files/microsoft sql server/90/sdk/assemblies/microsoft.sqlserver.smoenum.dll",
   "c:/program files/microsoft sql server/90/sdk/assemblies/microsoft.sqlserver.sqlenum.dll" 
   
   [c#]
   
   csc /t:exe /out:c:/smotest.exe c:/smotest.vb /r:
   "c:/program files/microsoft sql server/90/sdk/assemblies/microsoft.sqlserver.connectioninfo.dll",
   "c:/program files/microsoft sql server/90/sdk/assemblies/microsoft.sqlserver.smo.dll",
   "c:/program files/microsoft sql server/90/sdk/assemblies/microsoft.sqlserver.smoenum.dll",
   "c:/program files/microsoft sql server/90/sdk/assemblies/microsoft.sqlserver.sqlenum.dll"
3、獲得連接
  獲得到sqlserver的連接是非常容易的,對于缺省的實例并采用win授權驗證的連接,我們只需簡單的創建一個smo服務器對象,如下代碼
   [visual basic]

   imports microsoft.sqlserver.management.smo
   
   module smotest
    sub main()
   
         dim svr as server = new server()
         console.writeline(svr.name & " " & svr.information.versionstring)
   
    end sub
   end module
   
   [c#]
   
   using system;
   using microsoft.sqlserver.management.smo;
   
   namespace smotest
   {
       class program
       {
        static void main()
        {
         server svr = new server();
         console.writeline(svr.name + " " + svr.information.versionstring);
        }
      }
   }
   
   [vbscript]
   
      set svr = createobject("sqlsmo.server")
         wscript.echo svr.name & " " & svr.information.versionstring
      set svr = nothing
     
  當然,如果你的服務器不是缺省的,比如是用 服務器名/實例名組成,可以使用下面語句:
   dim svr as server = new server("(local)")
   
   server svr = new server(@"(local)/instance01")
   
  如果你想更復雜一點,也不想用win授權驗證,可以參考下面代碼
    [visual basic]
    
    imports microsoft.sqlserver.management.smo
    imports microsoft.sqlserver.management.common
    
    module smotest
     sub main()
    
            dim svr as server = new server()
            svr.connectioncontext.loginsecure = false
            svr.connectioncontext.login = "username"
            svr.connectioncontext.password = "password"  
            console.writeline(svr.name & " " & svr.information.versionstring)
    
     end sub
    end module
    
    [c#]
    
    using system;
    using microsoft.sqlserver.management.smo;
    using microsoft.sqlserver.management.common;
    
    namespace smotest
    {
        class program
        {
         static void main()
         {
          serverconnection conn = new serverconnection();
          conn.loginsecure = false;
          conn.login = "username";
          conn.password = "password";
          server svr = new server(conn); 
          console.writeline(svr.name + " " + svr.information.versionstring);
         }
       }
    }
    
    [vbscript]
    
       set svr = createobject("sqlsmo.server")
       svr.connectioncontext.loginsecure = false
       svr.connectioncontext.login = "username"
       svr.connectioncontext.password = "password"
          wscript.echo svr.name & " " & svr.information.versionstring
       set svr = nothing
    
   缺省smo對象行為是使用連接池的,連接將自動建立和按要求被釋放。 如果你不想這樣,你可以設置 autodisconnectmode 屬性改變它的行為,如果設置當然屬性值為 noautodisconnect,則連接要求顯示的建立和顯示的關閉,且這個連接是不能被池應用的,通過設置 nonpooledconnection 屬性值為true時,我們是明確指出當前連接不能被pool,你可以通過使用 profiler 來觀察smo應用程序的這種行為 
   如下:
    缺省行為-緩沖連接
    dim svr as server = new server()
    console.writeline(svr.name & " " & svr.information.versionstring)
    profiler觀察器將會顯示下面信息:

    非缺省行為-非緩沖連接
    dim svr as server = new server()
    svr.connectioncontext.nonpooledconnection = true
    svr.connectioncontext.connect()
    console.writeline(svr.name & " " & svr.information.versionstring)
    svr.connectioncontext.disconnect()
    profiler觀察器將會顯示下面信息:


好了,此文到此為止,下文將會更加深入的了解smo對象,并應用其做一些簡單的備份、恢復等操作

該文來自英文文章- http://www.sqldbatips.com/showarticle.asp?id=37    
     
 

   
  
   

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鹿泉市| 都兰县| 山东省| 钟祥市| 上栗县| 萨嘎县| 新竹市| 长垣县| 阜南县| 嘉峪关市| 淅川县| 汉寿县| 玛沁县| 剑川县| 米易县| 牙克石市| 徐州市| 宣武区| 庆元县| 谢通门县| 历史| 邓州市| 浦东新区| 互助| 玉树县| 西畴县| 新河县| 四平市| 秦安县| 临城县| 甘泉县| 临颍县| 三门峡市| 深州市| 邵东县| 营口市| 临高县| 乳源| 诸暨市| 南丰县| 岳西县|