|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。sql2005|工具1、简介:
在这系列文章中,我将树模怎样利用SMO(SQLManagementObjects)来完成多种通用的数据库办理义务,好比:备份、恢复、索引处置、完全性反省等
在此文中我们将会合怎样编译一个SMO使用程序和怎样利用SMO毗连到SQLSERVER并取得一些服务器信息,示例代码将分离利用VB.NET、C#和VBSCRIPT。假如你没有利用VisualStudio2005,我将先容怎样用命令行举行编译操纵
2、编译一个SMO使用程序:
要利用SMO工具在.NET使用程序,我们必需增加SMOassemblies使用程序中,在VisualStudio2005这长短常简单的,经由过程选择Project>AddReference菜单项,然后选择上面assemblies便可
Microsoft.SqlServer.ConnectionInfo
Microsoft.SqlServer.Smo
Microsoft.SqlServer.SmoEnum
Microsoft.SqlServer.SqlEnum
固然,假如你想COOL一点,你能够用命令行来编译,如:
[VisualBasic]
vbc/t:exec:SMOtest.vb/r:
"C:ProgramFilesMicrosoftSQLServer90SDKAssembliesMicrosoft.SqlServer.ConnectionInfo.dll",
"C:ProgramFilesMicrosoftSQLServer90SDKAssembliesMicrosoft.SqlServer.Smo.dll",
"C:ProgramFilesMicrosoftSQLServer90SDKAssembliesMicrosoft.SqlServer.SmoEnum.dll",
"C:ProgramFilesMicrosoftSQLServer90SDKAssembliesMicrosoft.SqlServer.SqlEnum.dll"
[C#]
csc/t:exe/out:c:SMOTest.exec:SMOtest.vb/r:
"C:ProgramFilesMicrosoftSQLServer90SDKAssembliesMicrosoft.SqlServer.ConnectionInfo.dll",
"C:ProgramFilesMicrosoftSQLServer90SDKAssembliesMicrosoft.SqlServer.Smo.dll",
"C:ProgramFilesMicrosoftSQLServer90SDKAssembliesMicrosoft.SqlServer.SmoEnum.dll",
"C:ProgramFilesMicrosoftSQLServer90SDKAssembliesMicrosoft.SqlServer.SqlEnum.dll"
3、取得毗连
取得到SQLSERVER的毗连长短常简单的,关于缺省的实例并接纳WIN受权考证的毗连,我们只需复杂的创立一个SMO服务器工具,以下代码
[VisualBasic]
ImportsMicrosoft.SqlServer.Management.Smo
ModuleSMOTest
SubMain()
DimsvrAsServer=NewServer()
Console.Writeline(svr.Name&""&svr.Information.VersionString)
EndSub
EndModule
[C#]
usingSystem;
usingMicrosoft.SqlServer.Management.Smo;
namespaceSMOTest
{
classProgram
{
staticvoidMain()
{
Serversvr=newServer();
Console.WriteLine(svr.Name+""+svr.Information.VersionString);
}
}
}
[VBScript]
Setsvr=CreateObject("SQLSMO.Server")
WScript.Echosvr.Name&""&svr.Information.VersionString
Setsvr=Nothing
固然,假如你的服务器不是缺省的,好比是用服务器名/实例名构成,可使用上面语句:
DimsvrAsServer=NewServer("(local)")
Serversvr=newServer(@"(local)INSTANCE01")
假如你想更庞大一点,也不想用WIN受权考证,能够参考上面代码
[VisualBasic]
ImportsMicrosoft.SqlServer.Management.Smo
ImportsMicrosoft.SqlServer.Management.Common
ModuleSMOTest
SubMain()
DimsvrAsServer=NewServer()
svr.ConnectionContext.LoginSecure=false
svr.ConnectionContext.Login="username"
svr.ConnectionContext.Password="password"
Console.Writeline(svr.Name&""&svr.Information.VersionString)
EndSub
EndModule
[C#]
usingSystem;
usingMicrosoft.SqlServer.Management.Smo;
usingMicrosoft.SqlServer.Management.Common;
namespaceSMOTest
{
classProgram
{
staticvoidMain()
{
ServerConnectionconn=newServerConnection();
conn.LoginSecure=false;
conn.Login="username";
conn.Password="password";
Serversvr=newServer(conn);
Console.WriteLine(svr.Name+""+svr.Information.VersionString);
}
}
}
[VBScript]
Setsvr=CreateObject("SQLSMO.Server")
svr.ConnectionContext.LoginSecure=False
svr.ConnectionContext.Login="username"
svr.ConnectionContext.Password="password"
WScript.Echosvr.Name&""&svr.Information.VersionString
Setsvr=Nothing
缺省SMO工具举动是利用毗连池的,毗连将主动创建和按请求被开释。假如你不想如许,你能够设置AutoDisconnectMode属性改动它的举动,假如设置固然属性值为NoAutoDisconnect,则毗连请求显现的创建和显现的封闭,且这个毗连是不克不及被池使用的,经由过程设置NonPooledConnection属性值为TRUE时,我们是明白指出以后毗连不克不及被POOL,你能够经由过程利用Profiler来察看SMO使用程序的这类举动
以下:
缺省举动-缓冲毗连
DimsvrAsServer=NewServer()
Console.Writeline(svr.Name&""&svr.Information.VersionString)
Profiler察看器将会显现上面信息:
非缺省举动-非缓冲毗连
DimsvrAsServer=NewServer()
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
“数据行级锁定”的意思是指在事务操作的执行过程中锁定正在被处理的个别记录,不让其他用户进行访问。这种锁定将影响到(但不限于)SELECT、LOCKINSHAREMODE、SELECT、FORUPDATE命令以及INSERT、UPDATE和DELETE命令。 |
|