调用方法

适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Microsoft Fabric SQL 数据库

方法执行与对象相关的特定任务,例如对数据库发出 检查点 或请求Microsoft SQL Server 实例的枚举登录列表。

方法针对对象执行操作。 方法可以使用参数并通常具有返回值。 返回值可以是简单数据类型、复杂对象或包含很多成员的结构。

使用异常处理检测方法是否成功。 有关详细信息,请参阅 Handling SMO Exceptions

示例

若要使用所提供的任何代码示例,您必须选择创建应用程序所需的编程环境、编程模板和编程语言。 有关详细信息,请参阅 在 Visual Studio .NET 中创建 Visual C# SMO 项目。

在 Visual Basic 中使用简单 SMO 方法

在此示例中,Create 方法不使用参数,没有返回值。

'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Define a Database object variable by supplying the parent server and the database name arguments in the constructor.
Dim db As Database
db = New Database(srv, "Test_SMO_Database")
'Call the Create method to create the database on the instance of SQL Server. 
db.Create()

在 Visual C# 中使用简单 SMO 方法

在此示例中,Create 方法不使用参数,没有返回值。

{   
//Connect to the local, default instance of SQL Server.   
Server srv;   
srv = new Server();   
//Define a Database object variable by supplying the parent server and the database name arguments in the constructor.   
Database db;   
db = new Database(srv, "Test_SMO_Database");   
//Call the Create method to create the database on the instance of SQL Server.   
db.Create();   
}

在 Visual Basic 中使用带参数的 SMO 方法

Table 对象具有名为 RebuildIndexes 的方法。 此方法需要指定 FillFactor的数字参数。

Dim srv As Server  
srv = New Server  
Dim tb As Table  
tb = srv.Databases("AdventureWorks2022").Tables("Employee", "HumanResources")  
tb.RebuildIndexes(70)  

在 Visual C# 中使用带参数的 SMO 方法

Table 对象具有名为 RebuildIndexes 的方法。 此方法需要指定 FillFactor的数字参数。

{   
Server srv = default(Server);   
srv = new Server();   
Table tb = default(Table);   
tb = srv.Databases("AdventureWorks2022").Tables("Employee", "HumanResources");   
tb.RebuildIndexes(70);   
}   

在 Visual Basic 中使用返回 DataTable 对象的枚举方法

本节说明如何调用枚举方法以及如何处理返回的 DataTable 对象中的数据。

该方法 EnumCollations 返回一个对象,该对象需要进一 DataTable 步导航才能访问有关 SQL Server 实例的所有可用排序规则信息。

'Connect to the local, default instance of SQL Server.  
Dim srv As Server  
srv = New Server  
'Call the EnumCollations method and return collation information to DataTable variable.  
Dim d As DataTable  
'Select the returned data into an array of DataRow.  
d = srv.EnumCollations  
'Iterate through the rows and display collation details for the instance of SQL Server.  
Dim r As DataRow  
Dim c As DataColumn  
For Each r In d.Rows  
    Console.WriteLine("==")  
    For Each c In r.Table.Columns  
        Console.WriteLine(c.ColumnName + " = " + r(c).ToString)  
    Next  
Next  

在 Visual C# 中使用返回 DataTable 对象的枚举方法

本节说明如何调用枚举方法以及如何处理返回的 DataTable 对象中的数据。

EnumCollations 方法返回系统 DataTable 对象。 该 DataTable 对象需要进一步导航才能访问有关 SQL Server 实例的所有可用排序规则信息。

//Connect to the local, default instance of SQL Server.   
{   
Server srv = default(Server);   
srv = new Server();   
//Call the EnumCollations method and return collation information to DataTable variable.   
DataTable d = default(DataTable);   
//Select the returned data into an array of DataRow.   
d = srv.EnumCollations;   
//Iterate through the rows and display collation details for the instance of SQL Server.   
DataRow r = default(DataRow);   
DataColumn c = default(DataColumn);   
foreach ( r in d.Rows) {   
  Console.WriteLine("=========");   
  foreach ( c in r.Table.Columns) {   
    Console.WriteLine(c.ColumnName + " = " + r(c).ToString);   
  }   
}   
}   

在 Visual Basic 中构造对象

可以通过使用 New 运算符调用任意对象的构造函数。 重载 Database 对象构造函数,本示例中使用的 Database 对象构造函数版本具有两个参数:数据库所属的父 Server 对象以及表示新数据库名称的字符串。

'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Declare and define a Database object by supplying the parent server and the database name arguments in the constructor.
Dim d As Database
d = New Database(srv, "Test_SMO_Database")
'Create the database on the instance of SQL Server.
d.Create()
Console.WriteLine(d.Name)

在 Visual C# 中构造对象

可以通过使用 New 运算符调用任意对象的构造函数。 重载 Database 对象构造函数,本示例中使用的 Database 对象构造函数版本具有两个参数:数据库所属的父 Server 对象以及表示新数据库名称的字符串。

{   
Server srv;   
srv = new Server();   
Table tb;   
tb = srv.Databases("AdventureWorks2022").Tables("Employee", "HumanResources");   
tb.RebuildIndexes(70);   
//Connect to the local, default instance of SQL Server.   
Server srv;   
srv = new Server();   
//Declare and define a Database object by supplying the parent server and the database name arguments in the constructor.   
Database d;   
d = new Database(srv, "Test_SMO_Database");   
//Create the database on the instance of SQL Server.   
d.Create();   
Console.WriteLine(d.Name);   
}  

在 Visual Basic 中复制 SMO 对象

此代码示例使用 Copy 方法来创建 Server 对象的副本。 该 Server 对象表示与 SQL Server 实例的连接。

'Connect to the local, default instance of SQL Server.
Dim srv1 As Server
srv1 = New Server()
'Modify the default database and the timeout period for the connection.
srv1.ConnectionContext.DatabaseName = "AdventureWorks2022"
srv1.ConnectionContext.ConnectTimeout = 30
'Make a second connection using a copy of the ConnectionContext property and verify settings.
Dim srv2 As Server
srv2 = New Server(srv1.ConnectionContext.Copy)
Console.WriteLine(srv2.ConnectionContext.ConnectTimeout.ToString)

在 Visual C# 中复制 SMO 对象

此代码示例使用 Copy 方法来创建 Server 对象的副本。 该 Server 对象表示与 SQL Server 实例的连接。

{   
//Connect to the local, default instance of SQL Server.   
Server srv1;   
srv1 = new Server();   
//Modify the default database and the timeout period for the connection.   
srv1.ConnectionContext.DatabaseName = "AdventureWorks2022";   
srv1.ConnectionContext.ConnectTimeout = 30;   
//Make a second connection using a copy of the ConnectionContext property and verify settings.   
Server srv2;   
srv2 = new Server(srv1.ConnectionContext.Copy);   
Console.WriteLine(srv2.ConnectionContext.ConnectTimeout.ToString);   
}  

在 Visual Basic 中监视服务器进程

可以通过枚举方法获取有关 SQL Server 实例的当前状态类型信息。 该代码示例使用 EnumProcesses 方法发现有关当前进程的信息。 它还演示如何使用返回的 DataTable 对象中的列和行。

'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Call the EnumCollations method and return collation information to DataTable variable.
Dim d As DataTable
'Select the returned data into an array of DataRow.
d = srv.EnumProcesses
'Iterate through the rows and display collation details for the instance of SQL Server.
Dim r As DataRow
Dim c As DataColumn
For Each r In d.Rows
    Console.WriteLine("============================================")
    For Each c In r.Table.Columns
        Console.WriteLine(c.ColumnName + " = " + r(c).ToString)
    Next
Next

在 Visual C# 中监视服务器进程

可以通过枚举方法获取有关 SQL Server 实例的当前状态类型信息。 该代码示例使用 EnumProcesses 方法发现有关当前进程的信息。 它还演示如何使用返回的 DataTable 对象中的列和行。

//Connect to the local, default instance of SQL Server.   
{   
Server srv = default(Server);   
srv = new Server();   
//Call the EnumCollations method and return collation information to DataTable variable.   
DataTable d = default(DataTable);   
//Select the returned data into an array of DataRow.   
d = srv.EnumProcesses;   
//Iterate through the rows and display collation details for the instance of SQL Server.   
DataRow r = default(DataRow);   
DataColumn c = default(DataColumn);   
foreach ( r in d.Rows) {   
  Console.WriteLine("=====");   
  foreach ( c in r.Table.Columns) {   
    Console.WriteLine(c.ColumnName + " = " + r(c).ToString);   
  }   
}   
}   

另请参阅

Server
ServerConnection