functionStorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

SQL Server2005中的SMO編程

系統 2106 0
<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>SMO編程
SMO是SQL Mangagement Objects的簡稱.與之相對應的是ADO.Net,不過不同的地方是ADO.Net是用于數據訪問的,而SMO是用于設計的,雖然SMO能夠再服務器上執行任意的SQL語句.另外一個不同的地方是ADO.Net可以訪問計算機中任意數據源,而SMO對象是專門針對SQL Server而設計的.
在SMO中最重要的一個類就是Server.其他大多數對象都是Server對象的后代.比如Database,Table,View等等對象都是通過Server屬性不斷向下檢索到的.
要在VS2005中使用必須引用SMO的程序集.我們建立好一個控制臺應用程序,添加引用:Microsoft.SqlServer.ConnectionInfo和Microsoft.SqlServer.Smo.我們可以輸入如下代碼使用Server對象給出某服務器中的數據庫數目:
using System;
using Microsoft.SqlServer.Management.Smo;
namespace SMOTest
... {
class Class1
... {
public static void Main()
... {
Microsoft.SqlServer.Management.Common.ServerConnectionconn
= new Microsoft.SqlServer.Management.Common.ServerConnection( " tcp:157.60.15.215,12345 " , " sa " , " 123456 " );
Servers
= new Server(conn);
Console.WriteLine(
" DatabaseCount: " + s.Databases.Count);
}

}

}

運行以上代碼就可以得到服務器上數據庫的數目.下面我們再來看看在SMO中對數據庫常見的操作:
1,創建刪除數據庫.
Database db2 = new Database(s, "NewDatabaseName");
db2.Create();
以上是創建數據庫的代碼,那么刪除數據庫的代碼就是:
Database db2 = s.Databases["NewDatabaseName"];
db2.Drop();
2,創建表.
Databasedb = s.Databases[ " AdventureWorks " ];
Tabletb
= new Table(db, " NewTableName " );
Columnc
= new Column(tb, " CustomerID " );
c.Identity
= true ;
c.IdentitySeed
= 1 ;
c.DataType
= DataType.Int;
c.Nullable
= false ;
tb.Columns.Add(c);
c
= new Column(tb, " CustomerName " );
c.DataType
= DataType.VarChar( 20 );
c.Nullable
= true ;
tb.Columns.Add(c);
tb.Create();
以上語句是在數據庫AdventureWorks中創建了一個表NewTableName,其中我們定義了兩個字段,一個是CustomerID,一個是CustomerName.需要注意的是在創建表的時候必須要指定其中的列,如果沒有指定列,那么創建表就會失敗.
3,創建存儲過程.
StoredProceduresp = new StoredProcedure(db, " NewStoredProcedure " );
StoredProcedureParameterspp1
= new StoredProcedureParameter(sp, " @addrID " ,DataType.Int);
sp.TextMode
= false ;
sp.Parameters.Add(spp1);
sp.TextBody
= " select*fromPerson.AddresswhereAddressID=@addrID " ;
sp.Create();

這兒需要說明的是如果不寫sp.TextMode = false;那么可能創建存儲過程要失敗,所以最好把這句加上.
整個語句比較簡單,而且也比較好理解,就不用多作解釋了.
4,刪除對象.
刪除對象比較簡單,只要將需要刪除的對象引用過來,然后執行Drop操作就可以了.比如:
刪除表:
Tabletb = db.Tables[ " TableName " ];tb.Drop();
刪除存儲過程:
StoredProceduresp = db.StoredProcedures[ " NewStoredProcedure123 " ];sp.Drop();

5,執行存儲過程.
執行存儲過程不需要在StoredProcedure對象下尋找方法,要SMO直接執行存儲過程可以使用Database對象下的ExecuteNonQuery方法.
6,更新對象屬性.
若想要修改數據庫的屬性,修改存儲過程內容等,在進行修改后必須要執行Alter方法才能真正更新.
比如修改數據庫屬性可以使用修改db.DatabaseOptions下的屬性,新屬性修改好后執行一句db.Alter();便可.
若要修改存儲過程,代碼如下:
StoredProceduresp = db.StoredProcedures[ " NewStoredProcedure123 " ];
StoredProcedureParameterspp1
= new StoredProcedureParameter(sp, " @spID " ,DataType.Int);
sp.TextMode
= false ;
sp.Parameters.Add(spp1);
sp.TextBody
= " select*fromPerson.AddresswhereStateProvinceID=@spID " ;
sp.Alter();

其他的一下對象如表,視圖等等原理相同.

SQL Server2005中的SMO編程


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 97影院理论在线观看 | 欧美精品久久久久久久久大尺度 | 色综合a怡红院怡红院首页 色综合h | 久热精品视频 | 国产成a人片在线观看视频 国产成a人片在线观看视频99 | 久久久亚洲欧洲国产 | 香蕉精品高清在线观看视频 | 欧美在线精品一区二区三区 | 久久成人在线观看 | 深夜福利院 | 国产三级精品三级男人的天堂 | 美女一级大黄录像一片 | 伊人99热 | 四虎精品成在线播放 | 欧美高清免费精品国产自 | 国产精品久久久久久久小唯西川 | 成 人 黄 色 视频 免费观看 | 五月婷婷综合色 | 亚洲字幕在线观看 | 久久精品网 | 日本高清精品 | a级精品九九九大片免费看 a级毛片高清免费视频 | 欧美在线视频播放 | 高清国产一区二区三区 | 西西大胆实体啪啪色哟哟 | 日韩欧美综合在线二区三区 | 欧美一级精品高清在线观看 | 国产1区精品 | 久 在线播放 | 欧美成人免费毛片 | 亚洲一区国产 | 免费99热在线观看 | 夜色成人影院在线www | 日本国产亚洲 | 一级片免费看 | 一级片免费在线 | 精品人人做人人爽久久久 | 日本免费一区二区三区中文 | 日日夜夜天天操 | 午夜视频国产 | 亚洲人成网站在线观看青青 |