ServerConnection.ExecuteNonQuery-Methode (StringCollection)

Führt einen Batch von Anweisungen aus, die kein Resultset zurückgeben.

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

Syntax

'Declaration
Public Function ExecuteNonQuery ( _
    sqlCommands As StringCollection _
) As Integer()
'Usage
Dim instance As ServerConnection 
Dim sqlCommands As StringCollection 
Dim returnValue As Integer()

returnValue = instance.ExecuteNonQuery(sqlCommands)
public int[] ExecuteNonQuery(
    StringCollection sqlCommands
)
public:
array<int>^ ExecuteNonQuery(
    StringCollection^ sqlCommands
)
member ExecuteNonQuery : 
        sqlCommands:StringCollection -> int[] 
public function ExecuteNonQuery(
    sqlCommands : StringCollection
) : 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 eine Anweisung, die kein SQLCMD-Befehl dann die Methode ist, enthält ExecutionFailureException fehlschlägt und eine Ausnahme wird ausgelöst.

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