|
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
|
Traducción
Original
|
Usar la utilidad sqlcmd
-
Los usuarios escriben instrucciones Transact-SQL interactivamente de una forma similar al modo en que trabajan con el símbolo del sistema. Los resultados se muestran en el símbolo del sistema. Para abrir una ventana de símbolo del sistema, haga clic en Inicio, Todo los programas, seleccione Accesorios y haga clic en Símbolo del sistema. En el símbolo del sistema, escriba sqlcmd seguido de una lista de opciones que desee. Para obtener una lista completa de las opciones admitidas por sqlcmd, vea sqlcmd (utilidad). -
Los usuarios envían un trabajo sqlcmd especificando la ejecución de una instrucción Transact-SQL individual o dirigiendo la utilidad hacia un archivo de texto que contiene las instrucciones Transact-SQL que se van a ejecutar. El resultado se dirige normalmente hacia un archivo de texto, aunque también se puede mostrar en el símbolo del sistema. -
Modo SQLCMD en el Editor de consultas de SQL Server Management Studio. -
Objetos de administración de SQL Server (SMO). -
Trabajos CmdExec del Agente SQL Server.
-
La opción del servidor (-S) que identifica la instancia de Microsoft SQL Server a la que se conecta sqlcmd. -
Las opciones de autenticación (-E, -U y -P) que especifican las credenciales que usa sqlcmd para conectarse a una instancia de SQL Server.
Nota
La opción -E es la predeterminada, por lo que no es necesario especificarla. -
Las opciones de entrada (-Q, -q y -i) que identifican la ubicación de la entrada a sqlcmd. -
La opción de salida (-o) que especifica el archivo en el que se guardará la salida de sqlcmd.
-
Conectarse a la instancia predeterminada mediante la Autenticación de Windows para ejecutar de forma interactiva instrucciones Transact-SQL: sqlcmd -S <ComputerName>
NotaEn el ejemplo anterior, -E no se especifica porque es el modificador predeterminado y sqlcmd se conecta a la instancia predeterminada mediante la Autenticación de Windows. -
Conectarse a la instancia con nombre mediante la Autenticación de Windows para ejecutar de forma interactiva instrucciones Transact-SQL: sqlcmd -S <ComputerName>\<InstanceName>
o bien sqlcmd -S .\<InstanceName>
-
Conectarse a una instancia con nombre mediante la Autenticación de Windows y especificar los archivos de entrada y salida: sqlcmd -S <ComputerName>\<InstanceName> -i <MyScript.sql> -o <MyOutput.rpt>
-
Conectarse a la instancia predeterminada del equipo local mediante la Autenticación de Windows, ejecutar una consulta y mantener la ejecución de sqlcmd hasta la finalización de la consulta: sqlcmd -q "SELECT * FROM AdventureWorks2012.Person.Person"
-
Conectarse a la instancia predeterminada del equipo local mediante la Autenticación de Windows, ejecutar una consulta, dirigir la salida a un archivo y cerrar sqlcmd después de la finalización de la consulta: sqlcmd -Q "SELECT * FROM AdventureWorks2012.Person.Person" -o MyOutput.txt
-
Conectarse a una instancia con nombre mediante la Autenticación de SQL Server para ejecutar interactivamente instrucciones Transact-SQL y hacer que sqlcmd solicite una contraseña: sqlcmd -U MyLogin -S <ComputerName>\<InstanceName>
NotaPara obtener una lista de opciones admitidas por la utilidad sqlcmd, vea sqlcmd -?.
sqlcmd -S <ComputerName>\<InstanceName>
sqlcmd
PRINT "Length: 5"" 7'";
GO
El conjunto de resultados es el siguiente.
Length: 5" 7'
C:\> _
C:\>sqlcmd
1> _
sqlcmd
USE AdventureWorks2012;
GO
El conjunto de resultados es el siguiente.
Changed database context to 'AdventureWorks2012'.
1> _
sqlcmd
USE AdventureWorks2012;
GO
SELECT TOP (3) BusinessEntityID, FirstName, LastName
FROM Person.Person;
GO
El conjunto de resultados es el siguiente.
BusinessEntityID FirstName LastName
----------- -------------------------------- -----------
1 Syed Abbas
2 Catherine Abel
3 Kim Abercrombie
(3 rows affected)
1> EXIT
C:\>
-
Puede generar y depurar de forma interactiva un conjunto de instrucciones Transact-SQL en SQL Server Management Studio y, luego, guardar el contenido de la ventana Consulta como archivo de script. -
Puede crear un archivo de texto que contenga instrucciones Transact-SQL usando un editor de texto, como el Bloc de notas.
A.Ejecutar un script con sqlcmd
USE AdventureWorks2012;
GO
SELECT TOP (3) BusinessEntityID, FirstName, LastName
FROM Person.Person;
GO
sqlcmd -i C:\MyFolder\MyScript.sql -o C:\MyFolder\MyOutput.txt
Changed database context to 'AdventureWorks2012'.
BusinessEntityID FirstName LastName
---------------- ----------- -----------
1 Syed Abbas
2 Catherine Abel
3 Kim Abercrombie
(3 rows affected)
B.Usar sqlcmd con una conexión administrativa dedicada
C:\>sqlcmd -S ServerName -A
1> SELECT blocked FROM sys.dm_exec_requests WHERE blocked <> 0;
2> GO
El conjunto de resultados es el siguiente.
spid blocked
------ -------
62 64
(1 rows affected)
1> KILL 64;
2> GO
C.Usar sqlcmd para ejecutar un procedimiento almacenado
USE AdventureWorks2012;
IF OBJECT_ID ( ' dbo.ContactEmailAddress, 'P' ) IS NOT NULL
DROP PROCEDURE dbo.ContactEmailAddress;
GO
CREATE PROCEDURE dbo.ContactEmailAddress
(
@FirstName nvarchar(50)
,@LastName nvarchar(50)
)
AS
SET NOCOUNT ON
SELECT EmailAddress
FROM Person.Person
WHERE FirstName = @FirstName
AND LastName = @LastName;
SET NOCOUNT OFF
C:\sqlcmd
1> :Setvar FirstName Gustavo
1> :Setvar LastName Achong
1> EXEC dbo.ContactEmailAddress $(Gustavo),$(Achong)
2> GO
EmailAddress
-----------------------------
gustavo0@adventure-works.com
D.Usar sqlcmd para mantenimiento de la base de datos
USE master;
BACKUP DATABASE [$(db)] TO DISK='$(bakfile)';
C:\ >sqlcmd
1> :connect <server>
Sqlcmd: Successfully connected to server <server>.
1> :setvar db msdb
1> :setvar bakfile c:\msdb.bak
1> :r c:\BackupTemplate.sql
2> GO
Changed database context to 'master'.
Processed 688 pages for database 'msdb', file 'MSDBData' on file 2.
Processed 5 pages for database 'msdb', file 'MSDBLog' on file 2.
BACKUP DATABASE successfully processed 693 pages in 0.725 seconds (7.830 MB/sec)
E.Usar sqlcmd para ejecutar código en múltiples instancias
:CONNECT <server>\,<instance1>
EXEC dbo.SomeProcedure
GO
:CONNECT <server>\,<instance2>
EXEC dbo.SomeProcedure
GO
E.Devolver salida XML
C:\>sqlcmd -d AdventureWorks2012
1> :XML ON
1> SELECT TOP 3 FirstName + ' ' + LastName + ', '
2> FROM Person.Person
3> GO
Syed Abbas, Catherine Abel, Kim Abercrombie,
F.Usar sqlcmd en un archivo de script de Windows
-
C:\badscript.sql SELECT batch_1_this_is_an_error GO SELECT 'batch #2' GO
-
C:\goodscript.sql SELECT 'batch #1' GO SELECT 'batch #2' GO
-
C:\returnvalue.sql :exit(select 100) @echo off C:\windowsscript.bat @echo off echo Running badscript.sql sqlcmd -i badscript.sql -b -o out.log if not errorlevel 1 goto next1 echo == An error occurred :next1 echo Running goodscript.sql sqlcmd -i goodscript.sql -b -o out.log if not errorlevel 1 goto next2 echo == An error occurred :next2 echo Running returnvalue.sql sqlcmd -i returnvalue.sql -o out.log echo SQLCMD returned %errorlevel% to the command shell :exit
-
C:\windowsscript.bat @echo off echo Running badscript.sql sqlcmd -i badscript.sql -b -o out.log if not errorlevel 1 goto next1 echo == An error occurred :next1 echo Running goodscript.sql sqlcmd -i goodscript.sql -b -o out.log if not errorlevel 1 goto next2 echo == An error occurred :next2 echo Running returnvalue.sql sqlcmd -i returnvalue.sql -o out.log echo SQLCMD returned %errorlevel% to the command shell :exit
C:\>windowsscript.bat
Running badscript.sql
== An error occurred
Running goodscript.sql
Running returnvalue.sql
SQLCMD returned 100 to the command shell
G.Usar sqlcmd para establecer el cifrado en la base de datos de Windows Azure SQL
-
El modificador -N lo usa el cliente para solicitar una conexión cifrada. Esta opción es equivalente a ADO. net option ENCRYPT = true. -
El modificador -C lo emplea el cliente para configurarlo implícitamente para el certificado de servidor confiable y no validarlo. Esta opción es equivalente a ADO. net option TRUSTSERVERCERTIFICATE = true.
-
SET ANSI_DEFAULTS -
SET ANSI_NULLS -
SET REMOTE_PROC_TRANSACTIONS -
SET ANSI_NULL_DEFAULT
-
SET CONCAT_NULL_YIELDS_NULL -
SET ANSI_PADDING -
SET QUERY_GOVERNOR_COST_LIMIT
Sintaxis
SQLCMD –E –N
SQLCMD –E –C
SQLCMD –E –N –C
SQLCMD –E
SQLCMD –E –N
SQLCMD –E –T
SQLCMD –E –N –C