ServerConnection.ExecuteNonQuery Método (StringCollection)
Ejecuta un lote de instrucciones que no devuelven ningún conjunto de resultados.
Espacio de nombres: Microsoft.SqlServer.Management.Common
Ensamblado: Microsoft.SqlServer.ConnectionInfo (en Microsoft.SqlServer.ConnectionInfo.dll)
Sintaxis
'Declaración
Public Function ExecuteNonQuery ( _
sqlCommands As StringCollection _
) As Integer()
'Uso
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[]
Parámetros
- sqlCommands
Tipo: StringCollection
Valor de objeto del sistema StringCollection que especifica los lotes de instrucciones Transact-SQL que se van a ejecutar.
Valor devuelto
Tipo: array<Int32[]
Valor de matriz Int32 que especifica el número total de filas afectadas por cada elemento del objeto StringCollection utilizado como parámetro sqlCommands.El valor devuelto especifica el número total de filas afectadas por el comando Transact-SQL para las instrucciones UPDATE, INSERT y DELETE.Para todos los demás tipos de instrucciones, el valor devuelto es -1.
Comentarios
Ejecuta los lotes de instrucciones de Transact-SQL que no lo hagan normalmente conjuntos de resultados. Éstos son normalmente las instrucciones o los procedimientos almacenados de (DDL) de lenguaje de definición de datos que afectan a la configuración del servidor.
La propiedad de Text de objeto de CapturedSql se puede utilizar como un parámetro para permitir la ejecución de instrucciones capturadas de Transact-SQL .
El objeto de StringCollection utiliza como parámetro de sqlCommands puede contener varios lotes separados por el separador de lotes. De forma predeterminada, el separador de lotes es GO, pero se puede establecer con la propiedad de BatchSeparator . La ejecución de lotes se controla con el parámetro de executionType .
Solo el método de ExecuteNonQuery reconocen los comandos SQLCMD. Si el parámetro de sqlCommand contiene se producirá una instrucción que no es comando SQLCMD después se produce un error en el método y una excepción de ExecutionFailureException .
Ejemplos
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
Vea también
Referencia
Espacio de nombres Microsoft.SqlServer.Management.Common