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編程

系統(tǒng) 1880 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的簡(jiǎn)稱.與之相對(duì)應(yīng)的是ADO.Net,不過(guò)不同的地方是ADO.Net是用于數(shù)據(jù)訪問(wèn)的,而SMO是用于設(shè)計(jì)的,雖然SMO能夠再服務(wù)器上執(zhí)行任意的SQL語(yǔ)句.另外一個(gè)不同的地方是ADO.Net可以訪問(wèn)計(jì)算機(jī)中任意數(shù)據(jù)源,而SMO對(duì)象是專門針對(duì)SQL Server而設(shè)計(jì)的.
在SMO中最重要的一個(gè)類就是Server.其他大多數(shù)對(duì)象都是Server對(duì)象的后代.比如Database,Table,View等等對(duì)象都是通過(guò)Server屬性不斷向下檢索到的.
要在VS2005中使用必須引用SMO的程序集.我們建立好一個(gè)控制臺(tái)應(yīng)用程序,添加引用:Microsoft.SqlServer.ConnectionInfo和Microsoft.SqlServer.Smo.我們可以輸入如下代碼使用Server對(duì)象給出某服務(wù)器中的數(shù)據(jù)庫(kù)數(shù)目:
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);
}

}

}

運(yùn)行以上代碼就可以得到服務(wù)器上數(shù)據(jù)庫(kù)的數(shù)目.下面我們?cè)賮?lái)看看在SMO中對(duì)數(shù)據(jù)庫(kù)常見(jiàn)的操作:
1,創(chuàng)建刪除數(shù)據(jù)庫(kù).
Database db2 = new Database(s, "NewDatabaseName");
db2.Create();
以上是創(chuàng)建數(shù)據(jù)庫(kù)的代碼,那么刪除數(shù)據(jù)庫(kù)的代碼就是:
Database db2 = s.Databases["NewDatabaseName"];
db2.Drop();
2,創(chuàng)建表.
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();
以上語(yǔ)句是在數(shù)據(jù)庫(kù)AdventureWorks中創(chuàng)建了一個(gè)表NewTableName,其中我們定義了兩個(gè)字段,一個(gè)是CustomerID,一個(gè)是CustomerName.需要注意的是在創(chuàng)建表的時(shí)候必須要指定其中的列,如果沒(méi)有指定列,那么創(chuàng)建表就會(huì)失敗.
3,創(chuàng)建存儲(chǔ)過(guò)程.
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();

這兒需要說(shuō)明的是如果不寫(xiě)sp.TextMode = false;那么可能創(chuàng)建存儲(chǔ)過(guò)程要失敗,所以最好把這句加上.
整個(gè)語(yǔ)句比較簡(jiǎn)單,而且也比較好理解,就不用多作解釋了.
4,刪除對(duì)象.
刪除對(duì)象比較簡(jiǎn)單,只要將需要?jiǎng)h除的對(duì)象引用過(guò)來(lái),然后執(zhí)行Drop操作就可以了.比如:
刪除表:
Tabletb = db.Tables[ " TableName " ];tb.Drop();
刪除存儲(chǔ)過(guò)程:
StoredProceduresp = db.StoredProcedures[ " NewStoredProcedure123 " ];sp.Drop();

5,執(zhí)行存儲(chǔ)過(guò)程.
執(zhí)行存儲(chǔ)過(guò)程不需要在StoredProcedure對(duì)象下尋找方法,要SMO直接執(zhí)行存儲(chǔ)過(guò)程可以使用Database對(duì)象下的ExecuteNonQuery方法.
6,更新對(duì)象屬性.
若想要修改數(shù)據(jù)庫(kù)的屬性,修改存儲(chǔ)過(guò)程內(nèi)容等,在進(jìn)行修改后必須要執(zhí)行Alter方法才能真正更新.
比如修改數(shù)據(jù)庫(kù)屬性可以使用修改db.DatabaseOptions下的屬性,新屬性修改好后執(zhí)行一句db.Alter();便可.
若要修改存儲(chǔ)過(guò)程,代碼如下:
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();

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

SQL Server2005中的SMO編程


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦?。?!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 亚洲欧美日韩国产精品影院 | 天天做夜夜做 | 日韩爱爱网站 | 亚洲一区二区三区久久久久 | 国产在线精品福利大全 | 国产亚洲欧洲精品 | 久久精品国产99国产精品免费看 | 色鬼久久爱综合久久鬼色 | 色婷婷影视 | 99精品视频在线观看免费 | 福利视频欧美一区二区三区 | 国产区综合| 欧美在线激情视频 | 99久久做夜夜爱天天做精品 | 99热久久久久久久免费观看 | 国产99视频在线 | 日本欧美视频在线 | 免费看国产精品麻豆 | 玖玖精品在线观看 | 四虎新地址4hu 你懂的 | 国产999视频| 免费一级毛片在线播放泰国 | 国产精品12 | 成人国产一区二区 | 深夜福利影院在线观看 | 国产午夜爽爽窝窝在线观看 | 夜夜操天天操 | 国产成人做受免费视频 | 大片毛片女女女女女女女 | 久久国产免费福利资源网站 | 亚洲三级天堂 | 朴妮唛禁福利视频在线 | 天天综合久久久网 | 日韩在线第三页 | 手机看片日韩欧美 | 91网红福利精品区一区二 | 色欧美亚洲 | 久久久久久久网 | 亚洲人成在线免费观看 | 欧美亚洲国产精品久久久久 | 欧美国产亚洲18 |