Método ServerConnection.ExecuteNonQuery (StringCollection, ExecutionTypes)
Executa um lote de instruções com as opções de execução especificadas que não retorna um conjunto de resultados.
Namespace: Microsoft.SqlServer.Management.Common
Assembly: Microsoft.SqlServer.ConnectionInfo (em Microsoft.SqlServer.ConnectionInfo.dll)
Sintaxe
'Declaração
Public Function ExecuteNonQuery ( _
sqlCommands As StringCollection, _
executionType As ExecutionTypes _
) As Integer()
'Uso
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[]
Parâmetros
- sqlCommands
Tipo: StringCollection
Um valor do objeto do sistema StringCollection que especifica os lotes de instruções Transact-SQL a serem executados.
- executionType
Tipo: Microsoft.SqlServer.Management.Common.ExecutionTypes
Um valor do objeto ExecutionTypes que especifica as opções de execução da instrução Transact-SQL.
Valor de retorno
Tipo: array<Int32[]
Um valor de matriz Int32 que especifica o número total de linhas afetadas por cada elemento do objeto StringCollection utilizado como o parâmetro sqlCommands.O valor de retorno especifica o número total de linhas afetadas pelo comando Transact-SQL para as instruções UPDATE, INSERT e DELETE.Para todos os outros tipos de instruções, o valor de retorno é -1.
Comentários
Executar lotes de instruções de Transact-SQL que normalmente não retornam conjuntos de resultados. Esses são normalmente as instruções ou procedimentos armazenados de linguagem de definição de dados (DDL) que afetam as configurações de servidor.
A propriedade de Text do objeto de CapturedSql pode ser usada como um parâmetro para permitir a execução de instruções capturadas de Transact-SQL .
O objeto de StringCollection usado como o parâmetro de sqlCommands pode conter vários lotes separados pelo separador de lote. Por padrão, o separador de lote é GO, mas pode ser definida com a propriedade de BatchSeparator . A execução do lote é controlada pelo parâmetro de executionType .
Somente os comandos SQLCMD são reconhecidos pelo método de ExecuteNonQuery . Se o parâmetro de sqlCommand contém uma instrução que não é um comando SQLCMD no método falhar e uma exceção será gerada de ExecutionFailureException a menos que o parâmetro de executionType é definido para incluir o valor de ExecutionTypes.ContinueOnError .
Exemplos
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
Consulte também
Referência
Sobrecarregado ExecuteNonQuery
Namespace Microsoft.SqlServer.Management.Common