ServerConnection.ExecuteNonQuery 方法 (StringCollection, ExecutionTypes)

执行不返回结果集、带指定执行选项的一批语句。

命名空间:  Microsoft.SqlServer.Management.Common
程序集:  Microsoft.SqlServer.ConnectionInfo(在 Microsoft.SqlServer.ConnectionInfo.dll 中)

语法

声明
Public Function ExecuteNonQuery ( _
    sqlCommands As StringCollection, _
    executionType As ExecutionTypes _
) As Integer()
用法
Dim instance As ServerConnection 
Dim sqlCommands As StringCollection 
Dim executionType As ExecutionTypes 
Dim returnValue As Integer()

returnValue = instance.ExecuteNonQuery(sqlCommands, _
    executionType)
public int[] ExecuteNonQuery(
    StringCollection sqlCommands,
    ExecutionTypes executionType
)
public:
array<int>^ ExecuteNonQuery(
    StringCollection^ sqlCommands, 
    ExecutionTypes executionType
)
member ExecuteNonQuery : 
        sqlCommands:StringCollection * 
        executionType:ExecutionTypes -> int[] 
public function ExecuteNonQuery(
    sqlCommands : StringCollection, 
    executionType : ExecutionTypes
) : int[]

参数

  • sqlCommands
    类型:StringCollection
    一个 StringCollection 系统对象值,该值指定要执行的成批的 Transact-SQL 语句。

返回值

类型:array<Int32[]
一个 Int32 数组值,该值指定受用作 sqlCommands 参数的 StringCollection 对象的每个元素影响的总行数。返回值指定 UPDATE、INSERT 和 DELETE 语句的 Transact-SQL 命令影响的总行数。对于所有其他类型的语句,返回值是 -1

注释

执行批处理通常不恢复结果集的 Transact-SQL 语句。 这通常是数据定义语言设置会影响服务器的声明 (DDL) 或存储过程。

CapturedSql 对象的 Text 物产可作为参数允许将夺取的 Transact-SQL 语句的执行。

为使用 sqlCommands 参数的 StringCollection 对象可以包含批处理分离器离散的多个批处理。 默认情况下 , 批处理分离器是访问 , 但是 , 可以设置与 BatchSeparator 物产。 批处理执行控制用于 executionType 参数。

SQLCMD 命令由 ExecuteNonQuery 方法仅识别。 如果 sqlCommand 参数包含一个未声明一个 SQLCMD 命令方法会失败 , 并引发 ExecutionFailureException 异常 , 除非将 executionType 参数包含 ExecutionTypes.ContinueOnError 值。

示例

VB

'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Set the execution mode to CaptureSql for the connection.
srv.ConnectionContext.SqlExecutionModes = SqlExecutionModes.CaptureSql
'Make a modification to the server that is to be captured.
srv.UserOptions.AnsiNulls = True
srv.Alter()
'Iterate through the strings in the capture buffer and display the captured statements.
Dim s As String
For Each s In srv.ConnectionContext.CapturedSql.Text
    Console.WriteLine(s)
Next
'Execute the captured statements.
srv.ConnectionContext.ExecuteNonQuery(srv.ConnectionContext.CapturedSql.Text)
'Revert to immediate execution mode. 
srv.ConnectionContext.SqlExecutionModes = SqlExecutionModes.ExecuteSql

PowerShell

$srv = new-object Microsoft.SqlServer.Management.Smo.Server
$srv.ConnectionContext.SqlExecutionModes = [Microsoft.SqlServer.Management.Common.SqlExecutionModes]::CaptureSql
$srv.UserOptions.AnsiNulls = $TRUE
$srv.Alter()
foreach ($s in $srv.ConnectionContext.CapturedSql.Text)
{
   Write-Host $s
}
$srv.ConnectionContext.ExecuteNonQuery($srv.ConnectionContext.CapturedSql.Text)
$srv.ConnectionContext.SqlExecutionModes = [Microsoft.SqlServer.Management.Common.SqlExecutionModes]::ExecuteSql

请参阅

参考

ServerConnection 类

ExecuteNonQuery 重载

Microsoft.SqlServer.Management.Common 命名空间

其他资源

使用捕获模式