Freigeben über


ServerConnection.ExecuteNonQuery-Methode (StringCollection, ExecutionTypes)

Führt einen Batch von Anweisungen, die kein Resultset zurückgeben, mit den angegebenen Ausführungsoptionen aus.

Namespace:  Microsoft.SqlServer.Management.Common
Assembly:  Microsoft.SqlServer.ConnectionInfo (in Microsoft.SqlServer.ConnectionInfo.dll)

Syntax

'Declaration
Public Function ExecuteNonQuery ( _
    sqlCommands As StringCollection, _
    executionType As ExecutionTypes _
) As Integer()
'Usage
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[]

Parameter

  • sqlCommands
    Typ: StringCollection
    Ein StringCollection-Systemobjektwert, der die Batches auszuführender Transact-SQL-Anweisungen angibt.

Rückgabewert

Typ: array<Int32[]
Ein Int32-Arraywert, der die Gesamtanzahl von Zeilen angibt, die von jedem Element des StringCollection-Objekts betroffen sind, das als sqlCommands-Parameter verwendet wird.Der Rückgabewert gibt die Gesamtanzahl der Zeilen an, die vom Transact-SQL-Befehl für UPDATE-, INSERT- und DELETE-Anweisungen betroffen sind.Für alle anderen Anweisungstypen beträgt der Rückgabewert -1.

Hinweise

Führt Batches von Transact-SQL-Anweisungen aus, die in der Regel keine Resultsets ausführen. Diese werden in der Regel Datendefinitionssprachen (ddl)- Anweisungen oder gespeicherte Prozeduren, die die Servereinstellungen auswirken.

Die Text-Eigenschaft des CapturedSql-Objekts kann als Parameter verwendet werden, um die Ausführung von erfassten Transact-SQL-Anweisungen zulassen.

Das StringCollection-Objekt, das den sqlCommands-Parameter verwendet wird, kann mehrere Batches enthalten, die durch das Batchtrennzeichen getrennt werden. Standardmäßig ist das Batchtrennzeichen GO, kann jedoch mit der BatchSeparator-Eigenschaft festgelegt werden. Die Batchausführung wird mit dem executionType-Parameter gesteuert.

Nur SQLCMD-Befehle werden durch die ExecuteNonQuery-Methode erkannt. Wenn der sqlCommand-Parameter enthält, schlägt eine Anweisung, die kein SQLCMD-Befehl dann die Methode ist und eine ExecutionFailureException - Ausnahme ausgelöst wird nicht ausgeführt, es sei denn, der Parameter executionType festgelegt wurde, um den Wert ExecutionTypes.ContinueOnError einschließen.

Beispiele

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

Siehe auch

Verweis

ServerConnection Klasse

ExecuteNonQuery-Überladung

Microsoft.SqlServer.Management.Common-Namespace

Andere Ressourcen

Verwenden des Aufzeichnungsmodus