osql (utilidad)osql Utility

La utilidad osql permite especificar archivos de script, procedimientos del sistema e instrucciones de Transact-SQLTransact-SQL .The osql utility allows you to enter Transact-SQLTransact-SQL statements, system procedures, and script files. Esta herramienta utiliza ODBC para comunicarse con el servidor.This utility uses ODBC to communicate with the server.

Importante

Esta característica se quitará en una versión futura de SQL ServerSQL Server.This feature will be removed in a future version of SQL ServerSQL Server. Evite utilizar esta característica en los nuevos trabajos de programación y planee modificar las aplicaciones que actualmente la utilizan.Avoid using this feature in new development work, and plan to modify applications that currently use the feature. En su lugar, utilice sqlcmd .Use sqlcmd instead. Para obtener más información, consulte sqlcmd Utility.For more information, see sqlcmd Utility.

SintaxisSyntax


osql  
[-?] |  
[-L] |  
[  
  {  
     {-Ulogin_id [-Ppassword]} | –E }  
     [-Sserver_name[\instance_name]] [-Hwksta_name] [-ddb_name]  
     [-ltime_out] [-ttime_out] [-hheaders]  
     [-scol_separator] [-wcolumn_width] [-apacket_size]  
     [-e] [-I] [-D data_source_name]  
     [-ccmd_end] [-q "query"] [-Q"query"]  
     [-n] [-merror_level] [-r {0 | 1}]  
     [-iinput_file] [-ooutput_file] [-p]  
     [-b] [-u] [-R] [-O]  
]  

ArgumentosArguments

-?-?
Muestra el resumen de la sintaxis de los modificadores de osql .Displays the syntax summary of osql switches.

-L-L
Enumera los servidores configurados localmente y los nombres de los servidores que difunden en la red.Lists the locally configured servers and the names of the servers broadcasting on the network.

Nota

Debido a la naturaleza de la difusión en las redes, es posible que osql no reciba una respuesta a tiempo de todos los servidores.Due to the nature of broadcasting on networks, osql may not receive a timely response from all servers. Por lo tanto, la lista de servidores devuelta puede variar para cada invocación de esta opción.Therefore the list of servers returned may vary for each invocation of this option.

-U login_id-U login_id
Es el identificador de inicio de sesión del usuario.Is the user login ID. Los identificadores de inicio de sesión distinguen entre mayúsculas y minúsculas.Login IDs are case-sensitive.

-P password-P password
Es una contraseña especificada por el usuario.Is a user-specified password. Si no se usa la opción -P , osql solicitará una contraseña.If the -P option is not used, osql prompts for a password. Si se usa la opción -P al final del símbolo del sistema sin una contraseña, osql usará la contraseña predeterminada (NULL).If the -P option is used at the end of the command prompt without any password, osql uses the default password (NULL).

Importante

No utilice una contraseña en blanco.Do not use a blank password. Utilice una contraseña segura.Use a strong password. Para obtener más información, consulte Strong Passwords.For more information, see Strong Passwords.

En las contraseñas se distingue entre mayúsculas y minúsculas.Passwords are case-sensitive.

La variable de entorno OSQLPASSWORD le permite establecer una contraseña predeterminada para la sesión actual.The OSQLPASSWORD environment variable allows you to set a default password for the current session. Por lo tanto, no tiene que codificar una contraseña en archivos por lotes.Therefore, you do not have to hard code a password into batch files.

Si no establece la contraseña con la opción -P , osql comprueba primero la variable OSQLPASSWORD.If you do not specify a password with the -P option, osql first checks for the OSQLPASSWORD variable. Si no hay ningún valor establecido, osql utiliza la contraseña predeterminada, NULL.If no value is set, osql uses the default password, NULL. En el ejemplo siguiente se especifica la variable OSQLPASSWORD en el símbolo del sistema y, a continuación, se tiene acceso a la utilidad osql :The following example sets the OSQLPASSWORD variable at a command prompt and then accesses the osql utility:

C:\>SET OSQLPASSWORD=abracadabra  
C:\>osql   

Importante

Para enmascarar la contraseña, no especifique la opción -P junto con la opción -U .To mask your password, do not specify the -P option along with the -U option. En su lugar, después de especificar osql con la opción -U y otros modificadores (sin especificar -P), pulse ENTRAR y osql le solicitará una contraseña.Instead, after specifying osql along with the -U option and other switches (do not specify -P), press ENTER, and osql will prompt you for a password. Este método garantiza que la contraseña se enmascare al especificarla.This method ensures that your password will be masked when it is entered.

-E-E
Utiliza una conexión de confianza en lugar de solicitar una contraseña.Uses a trusted connection instead of requesting a password.

-S server_name[ \instance_name]-S server_name[ \instance_name]
Especifica la instancia de SQL ServerSQL Server a la que hay que conectarse.Specifies the instance of SQL ServerSQL Server to connect to. Especifique server_name para conectar con la instancia predeterminada de SQL ServerSQL Server en ese servidor.Specify server_name to connect to the default instance of SQL ServerSQL Server on that server. Especifique server_name\instance_name para conectar con una instancia con nombre de SQL ServerSQL Server en ese servidor.Specify server_name\instance_name to connect to a named instance of SQL ServerSQL Server on that server. Si no se especifica ningún servidor, osql se conecta a la instancia predeterminada de SQL ServerSQL Server en el equipo local.If no server is specified, osql connects to the default instance of SQL ServerSQL Server on the local computer. Esta opción es necesaria cuando se ejecuta osql desde un equipo remoto conectado a la red.This option is required when executing osql from a remote computer on the network.

-H wksta_name-H wksta_name
Es el nombre de una estación de trabajo.Is a workstation name. El nombre de la estación de trabajo se almacena en sysprocesses.hostname y se muestra mediante sp_who.The workstation name is stored in sysprocesses.hostname and is displayed by sp_who. Si no se especifica esta opción, se supone el nombre actual del equipo.If this option is not specified, the current computer name is assumed.

-d db_name-d db_name
Ejecuta una instrucción USE db_name al iniciar osql.Issues a USE db_name statement when osqlis started.

-l time_out-l time_out
Especifica el número de segundos que tienen que transcurrir antes de que un inicio de sesión de osql agote el tiempo de espera. El tiempo de espera predeterminado para el inicio de sesión de osql es de ocho segundos.Specifies the number of seconds before an osql login times out. The default time-out for login to osql is eight seconds.

-t time_out-t time_out
Especifica el número de segundos que tienen que transcurrir antes de que un comando exceda el tiempo de espera. Si no se especifica ningún valor para time_out , los comandos no tienen tiempo de espera.Specifies the number of seconds before a command times out. If a time_out value is not specified, commands do not time out.

-h headers-h headers
Especifica el número de filas que se van a imprimir entre los encabezados de las columnas.Specifies the number of rows to print between column headings. La opción predeterminada es imprimir los encabezados una vez para cada conjunto de resultados de la consulta.The default is to print headings one time for each set of query results. Utilice -1 para especificar que no desea imprimir los encabezados.Use -1 to specify that no headers will be printed. Si usa -1, no debe dejar espacio entre el parámetro y el valor (-h-1, no -h -1).If –1 is used, there must be no space between the parameter and the setting (-h-1, not -h -1).

-s col_separator-s col_separator
Especifica el carácter separador de columnas que, de forma predeterminada, es un espacio en blanco.Specifies the column-separator character, which is a blank space by default. Para utilizar caracteres con un significado especial para el sistema operativo (por ejemplo, | ; & < >), escríbalos entre comillas dobles (").To use characters that have special meaning to the operating system (for example, | ; & < >), enclose the character in double quotation marks (").

-w column_width-w column_width
Permite al usuario ajustar el ancho de la pantalla para la salida.Allows the user to set the screen width for output. El valor predeterminado es 80 caracteres.The default is 80 characters. Cuando una línea de salida ha alcanzado el ancho máximo de pantalla, se divide en varias líneas.When an output line has reached its maximum screen width, it is broken into multiple lines.

-a packet_size-a packet_size
Permite solicitar un paquete de diferente tamaño.Allows you to request a different-sized packet. Los valores válidos de packet_size son de 512 a 65 535.The valid values for packet_size are 512 through 65535. El valor predeterminado de osql es el servidor predeterminado.The default value osql is the server default. Si se aumenta el tamaño del paquete, se puede mejorar el rendimiento durante la ejecución de scripts grandes en las que hay muchas instrucciones SQL entre comandos GO.Increased packet size can enhance performance on larger script execution where the amount of SQL statements between GO commands is substantial. MicrosoftMicrosoft indican que 8192 suele ser la configuración más rápida para operaciones de copia masiva. testing indicates that 8192 is typically the fastest setting for bulk copy operations. Se puede solicitar un tamaño mayor para los paquetes, pero osql adopta el valor predeterminado para el servidor si no puede cumplirse la solicitud.A larger packet size can be requested, but osql defaults to the server default if the request cannot be granted.

-e-e
Muestra lo escrito.Echoes input.

-I-I
Activa la opción de conexión QUOTED_IDENTIFIER.Sets the QUOTED_IDENTIFIER connection option on.

-D data_source_name-D data_source_name
Conecta a un origen de datos ODBC definido mediante el controlador ODBC de SQL ServerSQL Server.Connects to an ODBC data source that is defined using the ODBC driver for SQL ServerSQL Server. La conexión osql utiliza las opciones especificadas en el origen de datos.The osql connection uses the options specified in the data source.

Nota

Esta opción no funciona con los orígenes de datos definidos para otros controladores.This option does not work with data sources defined for other drivers.

-c cmd_end-c cmd_end
Especifica el terminador del comando.Specifies the command terminator. De forma predeterminada, los comandos se terminan y se envían a SQL ServerSQL Server si se escribe GO en una línea aparte.By default, commands are terminated and sent to SQL ServerSQL Server by entering GO on a line by itself. Cuando restablezca el terminador del comando, no utilice palabras reservadas de Transact-SQLTransact-SQL ni caracteres que tengan un significado especial para el sistema operativo, vayan o no precedidos por una barra diagonal inversa.When you reset the command terminator, do not use Transact-SQLTransact-SQL reserved words or characters that have special meaning to the operating system, whether preceded by a backslash or not.

-q " query "-q " query "
Ejecuta una consulta cuando se inicia osql , pero no sale de osql cuando se completa la consulta.Executes a query when osql starts, but does not exit osql when the query completes. (La instrucción de consulta no debe incluir GO.)(Note that the query statement should not include GO). Si emite una consulta desde un archivo por lotes, utilice %variables o %variables% de entorno.If you issue a query from a batch file, use %variables, or environment %variables%. Por ejemplo:For example:

SET table=sys.objects  
osql -E -q "select name, object_id from %table%"  

Utilice comillas dobles para la consulta y comillas simples en los elementos que incruste en la consulta.Use double quotation marks around the query and single quotation marks around anything embedded in the query.

-Q" query "-Q" query "
Ejecuta una consulta y sale inmediatamente de osql.Executes a query and immediately exits osql. Utilice comillas dobles para la consulta y comillas simples en los elementos que incruste en la consulta.Use double quotation marks around the query and single quotation marks around anything embedded in the query.

-n
Quita la numeración y el símbolo del sistema (>) de las líneas de entrada.Removes numbering and the prompt symbol (>) from input lines.

-m error_level-m error_level
Personaliza la presentación de los mensajes de error.Customizes the display of error messages. Se muestra el nivel de error, estado y número de mensaje en errores con el nivel de gravedad especificado o superior.The message number, state, and error level are displayed for errors of the specified severity level or higher. No se mostrarán errores que tengan un nivel de gravedad inferior al nivel especificado.Nothing is displayed for errors of levels lower than the specified level. Use -1 para especificar que se devuelvan todos los encabezados con los mensajes, incluso con los mensajes informativos.Use -1 to specify that all headers are returned with messages, even informational messages. Si usa -1, no debe dejar espacio entre el parámetro y los valores (-m-1, no -m -1).If using -1, there must be no space between the parameter and the setting (-m-1, not -m -1).

-r { 0| 1}-r { 0| 1}
Redirige la salida del mensaje a la pantalla (stderr).Redirects message output to the screen (stderr). Si no especifica ningún parámetro, o si especifica 0, solo se redirigirán los mensajes con nivel de gravedad 11 o superior.If you do not specify a parameter, or if you specify 0, only error messages with a severity level 11 or higher are redirected. Si especifica 1, toda salida de mensaje (incluida "print") se redirigirá.If you specify 1, all message output (including "print") is redirected.

-i input_file-i input_file
Identifica el archivo que contiene un lote de instrucciones SQL o procedimientos almacenados.Identifies the file that contains a batch of SQL statements or stored procedures. Se puede usar el operador de comparación menor que (<) en lugar de -i.The less than (<) comparison operator can be used in place of -i.

-o output_file-o output_file
Identifica el archivo que recibe la salida de osql.Identifies the file that receives output from osql. Se puede usar el operador de comparación mayor que (>) en lugar de -o.The greater than (>) comparison operator can be used in place of -o.

Si input_file no está en formato Unicode y no se especifica -u , output_file se almacena en formato OEM.If input_file is not Unicode and -u is not specified, output_file is stored in OEM format. Si input_file está en formato Unicode o se especifica -u , output_file se almacena en formato Unicode.If input_file is Unicode or -u is specified, output_file is stored in Unicode format.

-p-p
Imprime las estadísticas de rendimiento.Prints performance statistics.

-b-b
Especifica que osql se cierre y devuelva un valor de DOS ERRORLEVEL cuando se produce un error.Specifies that osql exits and returns a DOS ERRORLEVEL value when an error occurs. El valor que se devuelve a la variable DOS ERRORLEVEL es 1 cuando el mensaje de error de SQL ServerSQL Server tiene una gravedad superior a 11; de lo contrario, el valor devuelto es 0.The value returned to the DOS ERRORLEVEL variable is 1 when the SQL ServerSQL Server error message has a severity of 11 or greater; otherwise, the value returned is 0. MicrosoftMicrosoft Los archivos por lotes de MS-DOS pueden probar el valor de DOS ERRORLEVEL y tratar el error apropiadamente. MS-DOS batch files can test the value of DOS ERRORLEVEL and handle the error appropriately.

-u-u
Especifica que el archivo output_file se almacene en formato Unicode, independientemente del formato del archivo input_file.Specifies that output_file is stored in Unicode format, regardless of the format of the input_file.

-R-R
Especifica que el controlador ODBC de SQL ServerSQL Server debe usar la configuración del cliente cuando realice conversiones de datos de moneda, fecha y hora a datos de caracteres.Specifies that the SQL ServerSQL Server ODBC driver use client settings when converting currency, date, and time data to character data.

-O-O
Especifica que se desactiven algunas características de osql para emular el comportamiento de versiones anteriores de isql.Specifies that certain osql features be deactivated to match the behavior of earlier versions of isql. Estas características están desactivadas:These features are deactivated:

  • Procesamiento por lotes de final de archivo (EOF)EOF batch processing

  • Escala automática de ancho de la consolaAutomatic console width scaling

  • Mensajes detalladosWide messages

    También establece -1 como valor predeterminado de ERRORLEVEL de DOS.It also sets the default DOS ERRORLEVEL value to -1.

Nota

La utilidad -n, -O y -D han dejado de admitirse en osql.The -n, -O and -D options are no longer supported by osql.

ComentariosRemarks

La utilidad osql se inicia directamente desde el sistema operativo con las opciones en mayúsculas o en minúsculas, tal como se muestran aquí.The osql utility is started directly from the operating system with the case-sensitive options listed here. Después de iniciar osqlacepta instrucciones SQL y las envía a SQL ServerSQL Server de forma interactiva.After osqlstarts, it accepts SQL statements and sends them to SQL ServerSQL Server interactively. Se da formato a los resultados y se muestran en la pantalla (stdout).The results are formatted and displayed on the screen (stdout). Utilice QUIT o EXIT para salir de osql.Use QUIT or EXIT to exit from osql.

Si no especifica un nombre de usuario cuando inicia osql, SQL ServerSQL Server comprueba las variables de entorno y las usa, por ejemplo, osqluser=(user) u osqlserver=(server).If you do not specify a user name when you start osql, SQL ServerSQL Server checks for the environment variables and uses those, for example, osqluser=(user) or osqlserver=(server). Si no se establecen variables de entorno, se utilizará el nombre de usuario de la estación de trabajo.If no environment variables are set, the workstation user name is used. Si no especifica un servidor, se utilizará el nombre de la estación de trabajo.If you do not specify a server, the name of the workstation is used.

Si no se usan las opciones -U ni -P , SQL ServerSQL Server intenta conectarse usando el modo de autenticación de MicrosoftMicrosoft Windows.If neither the -U or -P options are used, SQL ServerSQL Server attempts to connect using MicrosoftMicrosoft Windows Authentication Mode. La autenticación se basa en la cuenta de MicrosoftMicrosoft Windows del usuario que ejecuta osql.Authentication is based on the MicrosoftMicrosoft Windows account of the user running osql.

La utilidad osql utiliza la API de ODBC.The osql utility uses the ODBC API. La utilidad utiliza la configuración predeterminada del controlador ODBC de SQL ServerSQL Server para las opciones de conexión ISO de SQL ServerSQL Server .The utility uses the SQL ServerSQL Server ODBC driver default settings for the SQL ServerSQL Server ISO connection options. Para obtener más información, vea Efectos de las opciones de ANSI.For more information, see Effects of ANSI Options.

Nota

La utilidad osql no admite los tipos de datos definidos por el usuario CLR.The osql utility does not support CLR user-defined data types. Para procesar estos tipos de datos, debe usar la utilidad sqlcmd .To process these data types, you must use the sqlcmd utility. Para obtener más información, consulte sqlcmd Utility.For more information, see sqlcmd Utility.

Comandos OSQLOSQL Commands

Además de las instrucciones de Transact-SQLTransact-SQL de osql, los siguientes comandos también están disponibles.In addition to Transact-SQLTransact-SQL statements within osql, these commands are also available.

CommandCommand DescripciónDescription
GOGO Ejecuta todas las instrucciones escritas después del último GO.Executes all statements entered after the last GO.
RESETRESET Borra cualquier instrucción que haya escrito.Clears any statements you have entered.
QUIT o EXIT( )QUIT or EXIT( ) Sale de osql.Exits from osql.
CTRL+CCTRL+C Finaliza una consulta sin salir de osql.Ends a query without exiting from osql.

Nota

Los comandos !!The !! y ED ya no se admiten en osql.and ED commands are no longer supported by osql.

Los terminadores del comando GO (predeterminado), RESET EXIT, QUIT y CTRL+C solo se reconocen si aparecen al principio de una línea, inmediatamente después de símbolo del sistema de osql .The command terminators GO (by default), RESET EXIT, QUIT, and CTRL+C, are recognized only if they appear at the beginning of a line, immediately following the osql prompt.

GO marca tanto el final de un lote como la ejecución de cualquier instrucción de Transact-SQLTransact-SQL almacenada en caché.GO signals both the end of a batch and the execution of any cached Transact-SQLTransact-SQL statements. Cuando presione INTRO al final de cada línea de entrada, osql colocará en caché las instrucciones de esa línea.When you press ENTER at the end of each input line, osql caches the statements on that line. Al presionar ENTRAR después de escribir GO, todas las instrucciones almacenadas en la caché se enviarán como un lote a SQL ServerSQL Server.When you press ENTER after typing GO, all of the currently cached statements are sent as a batch to SQL ServerSQL Server.

La utilidad osql actual funciona como si existiera una instrucción GO al final de cada script que se ejecuta, por lo que se ejecutarán todas las instrucciones del script.The current osql utility works as if there is an implied GO at the end of any script executed, therefore all statements in the script execute.

Finalice un comando; para ello, escriba una línea que comience con un terminador de comandos.End a command by typing a line beginning with a command terminator. Puede poner un entero después del terminador de comandos para especificar cuántas veces se debe ejecutar el comando.You can follow the command terminator with an integer to specify how many times the command should be run. Por ejemplo, para ejecutar este comando 100 veces, escriba:For example, to execute this command 100 times, type:

SELECT x = 1  
GO 100  

Los resultados se imprimen una vez al final de la ejecución.The results are printed once at the end of execution. osql no acepta más de 1000 caracteres por línea.osql does not accept more than 1,000 characters per line. Las instrucciones grandes se deben distribuir en varias líneas.Large statements should be spread across multiple lines.

Pueden utilizarse las funciones de recuperación de Windows para recuperar y modificar las instrucciones osql .The command recall facilities of Windows can be used to recall and modify osql statements. El búfer de consulta existente se puede borrar si escribe RESET.The existing query buffer can be cleared by typing RESET.

Cuando se ejecutan procedimientos almacenados, osql imprime una línea en blanco entre cada conjunto de resultados de un lote.When running stored procedures, osql prints a blank line between each set of results in a batch. Además, el mensaje "0 filas afectadas" no aparece cuando no se aplica a la instrucción ejecutada.In addition, the "0 rows affected" message does not appear when it does not apply to the statement executed.

Utilizar osql de forma interactivaUsing osql Interactively

Para usar osql de forma interactiva, escriba el comando osql (y cualesquiera de las opciones) junto al símbolo del sistema.To use osql interactively, type the osql command (and any of the options) at a command prompt.

Puede leer un archivo que contenga una consulta (como Sores.qry) para ejecutarse en osql si escribe un comando como este:You can read in a file containing a query (such as Stores.qry) for execution by osql by typing a command similar to this:

osql -E -i stores.qry  

Puede leer un archivo que contenga una consulta (como Titles.qry) y dirigir el resultado a otro archivo si escribe un comando similar a este:You can read in a file containing a query (such as Titles.qry) and direct the results to another file by typing a command similar to this:

osql -E -i titles.qry -o titles.res  

Importante

Siempre que sea posible, use la opción -E(conexión de confianza).When possible, use the -Eoption (trusted connection).

Cuando use osql de forma interactiva, podrá leer un archivo del sistema operativo en el búfer de comandos con :rfile_name.When using osql interactively, you can read an operating-system file into the command buffer with :rfile_name. De esta manera, se enviará el script SQL de file_name directamente al servidor como un lote único.This sends the SQL script in file_name directly to the server as a single batch.

Nota

Cuando se usa osql, SQL ServerSQL Server trata el separador de lotes GO, si aparece en el archivo de script de SQL, como un error de sintaxis.When using osql, SQL ServerSQL Server treats the batch separator GO, if it appears in a SQL script file, as a syntax error.

Insertar comentariosInserting Comments

Puede incluir comentarios en una instrucción Transact-SQL que vaya a enviarse a SQL ServerSQL Server con osql.You can include comments in a Transact-SQL statement submitted to SQL ServerSQL Server by osql. Se permiten dos estilos de comentario: -- y /...*/.Two types of commenting styles are allowed: -- and /...*/.

Utilizar EXIT para devolver resultados en osqlUsing EXIT to Return Results in osql

Puede utilizar el resultado de una instrucción SELECT como valor devuelto de osql.You can use the result of a SELECT statement as the return value from osql. Si es numérica, la primera columna de la última fila del resultado se convierte en un entero de 4 bytes (long).If it is numeric, the last column of the last result row is converted to a 4-byte integer (long). MS-DOS pasa el byte bajo al proceso primario o al nivel de errores del sistema operativo.MS-DOS passes the low byte to the parent process or operating system error level. Windows pasa el entero de 4 bytes completo.Windows passes the entire 4-byte integer. La sintaxis es:The syntax is:

EXIT ( < query > )  

Por ejemplo:For example:

EXIT(SELECT @@ROWCOUNT)  

También puede incluir el parámetro EXIT como parte de un archivo por lotes.You can also include the EXIT parameter as part of a batch file. Por ejemplo:For example:

osql -E -Q "EXIT(SELECT COUNT(*) FROM '%1')"  

La utilidad osql pasa al servidor todo lo que haya entre paréntesis () , exactamente como se haya escrito.The osql utility passes everything between the parentheses () to the server exactly as entered. Si un procedimiento almacenado del sistema selecciona un conjunto y devuelve un valor, solo se devuelve la selección.If a stored system procedure selects a set and returns a value, only the selection is returned. La instrucción EXIT() sin nada entre paréntesis ejecuta todo lo que le precede en el lote y luego sale sin ningún valor devuelto.The EXIT() statement with nothing between the parentheses executes everything preceding it in the batch and then exits with no return value.

Hay cuatro formatos de EXIT:There are four EXIT formats:

  • EXITEXIT

Nota

No ejecuta el lote; sale de forma inmediata y no devuelve ningún valor.Does not execute the batch; quits immediately and returns no value.

  • EXIT()EXIT()

Nota

Ejecuta el lote y, a continuación, sale sin devolver ningún valor.Executes the batch, and then quits and returns no value.

  • EXIT(query)EXIT(query)

Nota

Ejecuta el lote, incluida la consulta, y, a continuación, sale tras devolver el resultado de la consulta.Executes the batch, including the query, and then quits after returning the results of the query.

  • RAISERROR con un estado de 127RAISERROR with a state of 127

Nota

Si utiliza RAISERROR en un script osql y se genera el estado 127, osql terminará y devolverá un id. de mensaje al cliente.If RAISERROR is used within an osql script and a state of 127 is raised, osql will quit and return the message ID back to the client. Por ejemplo:For example:

RAISERROR(50001, 10, 127)  

Este error provocará la finalización del script osql y se devolverá al cliente un mensaje con el id. 50001.This error will cause the osql script to end and the message ID 50001 will be returned to the client.

SQL ServerSQL Serverreserva los valores devueltos -1 a -99; osql define los valores siguientes:The return values -1 to -99 are reserved by SQL ServerSQL Server; osql defines these values:

  • -100-100

    Error encontrado antes de seleccionar el valor devuelto.Error encountered prior to selecting return value.

  • -101-101

    No se encontró ninguna fila al seleccionar el valor devuelto.No rows found when selecting return value.

  • -102-102

    Error de conversión al seleccionar el valor devuelto.Conversion error occurred when selecting return value.

Mostrar tipos de datos money y smallmoneyDisplaying money and smallmoney Data Types

osql muestra los tipos de datos money y smallmoney con dos decimales, aunque SQL ServerSQL Server almacene internamente el valor con cuatro decimales.osql displays the money and smallmoney data types with two decimal places although SQL ServerSQL Server stores the value internally with four decimal places. Observe el ejemplo:Consider the example:

SELECT CAST(CAST(10.3496 AS money) AS decimal(6, 4))  
GO  

Esta instrucción da como resultado 10.3496, que indica que el valor se almacena con todos los decimales intactos.This statement produces a result of 10.3496, which indicates that the value is stored with all decimal places intact.

Vea tambiénSee Also

Comentario (MDX) Comment (MDX)
--( Comentario ) ( MDX ) -- (Comment) (MDX)
CAST y CONVERT ( Transact-SQL ) CAST and CONVERT (Transact-SQL)
RAISERROR ( Transact-SQL )RAISERROR (Transact-SQL)