Lectores,
¡Buenas tardes!
En esta publicación hablaré más sobre la declaración SET de SQL Server, que además de usarse para definir variables, también se puede usar para cambiar la configuración de la sesión actual. Ellos son:
| Categoría | Instrucción | Descripción |
|---|---|---|
| Fecha y hora | FIJAR FECHA PRIMERO |
Establece el primer día de la semana en un número del 1 al 7, donde: 1 = lunes 2 = martes 3 = miércoles 4 = jueves 5 = viernes 6 = sábado 7 = Domingo (predeterminado) |
| ESTABLECER FORMATO DE FECHA | Define el formato de fecha estándar (mdy, dmy, ymd, etc.) | |
| Bloquear (BLOQUEOS) | ESTABLECER PRIORIDAD_DEADLOCK | Especifica la importancia de la sesión actual si hay un punto muerto. Si dos sesiones entran en un punto muerto y tienen la misma prioridad, ambas son elegibles para ser eliminadas. Si tienen diferentes prioridades, se elimina la sesión con menor prioridad. Parámetros: |
| ESTABLECER LOCK_TIMEOUT | Especifica el número de milisegundos hasta que la base de datos devuelva un error de bloqueo, donde: – -1 (predeterminado): indica que no hay tiempo de espera (es decir, espera indefinidamente). – 0: significa no esperar y devolver un mensaje tan pronto como se encuentre un bloque |
|
| Misceláneas | ESTABLECER CONCAT_NULL_YIELDS_NULL | Cuando SET CONCAT_NULL_YIELDS_NULL está activado, concatenar un valor nulo con una cadena produce un resultado NULL.
Por ejemplo, SELECT 'abc' + NULL genera NULL. Cuando SET CONCAT_NULL_YIELDS_NULL está en OFF, la concatenación de un valor nulo con una cadena genera la cadena misma (el valor nulo se trata como una cadena vacía). Por ejemplo, SELECT 'abc' + NULL produce abc |
| ESTABLECER CURSOR_CLOSE_ON_COMMIT | Cuando SET CURSOR_CLOSE_ON_COMMIT está activado, esta configuración cierra cualquier cursor abierto en una confirmación o reversión compatible con ISO.
Cuando SET CURSOR_CLOSE_ON_COMMIT está en OFF, el cursor no se cerrará cuando se confirme una transacción |
|
| ESTABLECER FIPS_FLAGGER |
Especifica la verificación del cumplimiento del estándar FIPS 127-2. Está basado en la norma ISO.
Parámetros: |
|
| ESTABLECER IDENTIDAD_INSERT |
Le permite insertar valores explícitos en una columna IDENTITY (solo una tabla en una sesión puede tener la propiedad IDENTITY_INSERT configurada en ON)
Ejemplo (Parámetros = ON u OFF): |
|
| ESTABLECER IDIOMA |
Especifica el entorno de idioma para la sesión. El idioma de la sesión determina los formatos de fecha y hora y los mensajes del sistema.
Ejemplo: ESTABLECER IDIOMA 'Brasileño' |
|
| ESTABLECER COMPENSACIONES | Devuelve el desplazamiento (posición relativa al comienzo de una instrucción) de las palabras clave especificadas (no usar, ya que se eliminará en versiones futuras) | |
| ESTABLECER QUOTED_IDENTIFIER | Cuando SET QUOTED_IDENTIFIER está activado, los identificadores se pueden encerrar entre comillas dobles y las cadenas deben encerrarse entre comillas simples. Cuando SET QUOTED_IDENTIFIER está en OFF, los identificadores no pueden encerrarse entre comillas y las cadenas pueden encerrarse entre comillas simples o dobles. |
|
| Ejecuciones de consultas | CONJUNTO ARITHABORT | Define si, cuando ocurre un error de desbordamiento o división por cero, la consulta se cerrará (ON) |
| CONJUNTO ARITHIGNORE | Controla si se devuelven mensajes de error de desbordamiento o división por cero (OFF) | |
| ESTABLECER FMTONLY | Si está habilitada (ON), la instrucción devuelve solo información de la columna (Metadatos). No se devuelven filas de datos (no utilizar, quedará obsoleto) | |
| ESTABLECER SIN CUENTA | Controla si se mostrará (OFF) o se ocultará (ON) el número de registros afectados por la consulta.
Nota: La función @@ROWCOUNT se actualiza incluso cuando SET NOCOUNT está activado. |
|
| ESTABLECER NOEXEC | Cuando SET NOEXEC está activado, la base de datos compila las instrucciones TSQL, las valida (PARSE), pero no las ejecuta. | |
| ESTABLECER NUMERIC_ROUNDABORT | Cuando SET NUMERIC_ROUNDABORT está activado, se genera un error después de que se produce una pérdida de precisión en una expresión. Cuando está en OFF, las pérdidas de precisión no generan mensajes de error y el resultado se redondea a la precisión de la columna o variable que almacena el resultado.
La pérdida de precisión ocurre cuando se intenta almacenar un valor con una precisión fija en una columna o variable con menor precisión. |
|
| ESTABLECER SÓLO PARSE | Cuando SET PARSEONLY está activado, examina la sintaxis de cada declaración y devuelve cualquier mensaje de error sin compilar ni ejecutar la declaración. | |
| ESTABLECER QUERY_GOVERNOR_COST_LIMIT | Define un valor entero que especifica el costo más alto que puede lograr una consulta en la sesión. Esta opción anula la configuración "Límite de costo del gobernador de consultas" |
|
| ESTABLECER CUENTA DE FILAS |
Hace que SQL Server detenga el procesamiento de consultas después de que se devuelve el número especificado de filas
Ejemplo para devolver solo 10 líneas (Prefiere usar TOP) SELECCIONAR * DE dbo.Clientes |
|
| ESTABLECER TAMAÑO DE TEXTO | Especifica el tamaño de los datos varchar(max), nvarchar(max), varbinary(max), text, ntext e image devueltos por una instrucción SELECT. | |
| Configuración ISO | ESTABLECER ANSI_DEFAULTS | Controla un grupo de configuraciones de SQL Server. Cuando está activada (ON), esta opción habilita las siguientes configuraciones ISO: – ESTABLECER ANSI_NULLS – ESTABLECER CURSOR_CLOSE_ON_COMMIT – ESTABLECER ANSI_NULL_DFLT_ON – ESTABLECER IMPLICIT_TRANSACTIONS – ESTABLECER ANSI_PADDING – ESTABLECER IDENTIFICADOR_QUOTED – ESTABLECER ANSI_WARNINGS |
| ESTABLECER ANSI_NULL_DFLT_OFF | Cuando SET ANSI_NULL_DFLT_OFF está activado, las nuevas columnas creadas usando las declaraciones ALTER TABLE y CREATE TABLE NO serán NULL si no se especifican explícitamente | |
| ESTABLECER ANSI_NULL_DFLT_ON | Cuando SET ANSI_NULL_DFLT_OFF está activado, las nuevas columnas creadas usando las declaraciones ALTER TABLE y CREATE TABLE aceptarán valores NULL si no se especifican explícitamente | |
| ESTABLECER ANSI_NULLS |
Especifica el comportamiento compatible con ISO de los operadores de comparación Igual (=) y No igual a (<>) cuando se utilizan con valores nulos.
Cuando SET ANSI_NULLS está activado, una instrucción SELECT que usa WHERE nombre_columna = NULL devuelve cero filas incluso si hay valores nulos en nombre_columna |
|
| ESTABLECER ANSI_PADDING | Cuando SET ANSI_PADDING = ON, los espacios finales se recortarán en las columnas VARCHAR y VARBINARY | |
| ESTABLECER ANSI_WARNINGS |
Especifica el comportamiento estándar ISO para diversas condiciones de error: – Cuando se establece en ON, si se muestran valores nulos en funciones agregadas como SUM, AVG, MAX, MIN, STDEV, STDEVP, VAR, VARP o COUNT, se generará un mensaje de advertencia. Cuando se establece en APAGADO, no se emite ninguna advertencia. – Cuando se establece en ON, los errores de desbordamiento aritmético y división por cero hacen que la instrucción regrese y se genere un mensaje de error. |
|
| Estadística | ESTABLECER PLAN DE FUERZA | Cuando FORCEPLAN está activado, el optimizador de consultas de SQL Server procesa JOINS en el mismo orden en que se muestran las tablas en la cláusula FROM de una consulta. |
| ESTABLECER SHOWPLAN_ALL | Cuando SET SHOWPLAN_ALL está activado, el banco no ejecuta las consultas, solo devuelve información detallada y estimaciones de costos sobre cómo se ejecutan las instrucciones. | |
| ESTABLECER SHOWPLAN_TEXT | Cuando SET SHOWPLAN_TEXT está activado, la base de datos no ejecuta las consultas, solo devuelve información detallada y estimaciones de costos sobre cómo se ejecutan las instrucciones en formato TEXTO. | |
| ESTABLECER SHOWPLAN_XML | Cuando SET SHOWPLAN_XML está activado, la base de datos no ejecuta las consultas, solo devuelve información detallada y estimaciones de costos sobre cómo se ejecutan las instrucciones en formato XML. | |
| ESTABLECER ESTADÍSTICAS IO | Cuando SET STATISTICS IO está activado, hace que SQL Server muestre información sobre la cantidad de actividad del disco generada por las declaraciones. | |
| ESTABLECER ESTADÍSTICAS XML | Cuando está activado, hace que SQL Server ejecute declaraciones y genere información detallada sobre cómo se ejecutaron las declaraciones en forma de documento XML. | |
| ESTABLECER PERFIL DE ESTADÍSTICAS | Cuando el PERFIL DE ESTADÍSTICAS está activado, cada consulta ejecutada devuelve el número de filas generadas por cada operador y el número de veces que se ejecutó el operador. | |
| ESTABLECER ESTADÍSTICAS HORA | Cuando está activado, muestra la cantidad de milisegundos necesarios para analizar, compilar y ejecutar cada instrucción. | |
| Actas | ESTABLECER IMPLICIT_TRANSACTIONS |
Cuando está activado, SET IMPLICIT_TRANSACTIONS establece la conexión en modo de transacción implícita. En este modo, una declaración BEGIN TRANSACTION implícita iniciará dos transacciones anidadas y la ejecución de cualquiera de las siguientes declaraciones inicia una transacción: – ALTERAR TABLA - BUSCAR – REVOCAR – COMENZAR LA TRANSACCIÓN - CONCEDER - SELECCIONAR - CREAR - INSERTAR – TRUNCAR TABLA - BORRAR - ABIERTO - ACTUALIZAR - GOTA |
| ESTABLECER REMOTE_PROC_TRANSACTIONS | Cuando está activado, especifica que cuando una transacción local está activa, la ejecución de un StoredProcedure de forma remota inicia una transacción distribuida (no usar, quedará obsoleto) | |
| ESTABLECER EL NIVEL DE AISLAMIENTO DE TRANSACCIONES |
Controla el comportamiento de bloqueo de filas y control de versiones:
– LEER NO COMPROMETIDO: Especifica que las instrucciones pueden leer líneas que han sido modificadas por otras transacciones, pero que aún no se han comprometido (NOLOCK). – LEER COMPROMETIDO (predeterminado): especifica que las instrucciones no pueden leer datos que hayan sido modificados pero que aún no hayan sido confirmados por otras transacciones. Esto evita lecturas sucias. – LECTURA REPETIBLE: Especifica que las instrucciones no pueden leer datos que han sido modificados pero aún no confirmados por otras transacciones y que ninguna otra transacción puede modificar datos que han sido leídos por la transacción actual hasta que se complete la transacción actual. – INSTANTÁNEA: Especifica que los datos leídos por cualquier declaración en una transacción serán la versión transaccionalmente consistente que existía al comienzo de la transacción. La transacción solo puede reconocer modificaciones de datos que se confirmaron antes de que comenzara la transacción. Las modificaciones de datos realizadas por otras transacciones después del inicio de la transacción actual no son visibles para las instrucciones que se ejecutan en la transacción actual. El efecto será como si las instrucciones de una transacción tomaran una instantánea de los datos confirmados tal como existían al comienzo de la transacción. – SERIALIZABLE: Las instrucciones no pueden leer datos que hayan sido modificados y que aún no hayan sido confirmados por otras transacciones. Ninguna otra transacción puede modificar los datos leídos por la transacción actual hasta que se complete la transacción actual. Otras transacciones no pueden insertar nuevas filas con valores clave que estén en el rango de claves leído por cualquier declaración en la transacción actual hasta que se complete la transacción actual. |
|
| ESTABLECER XACT_ABORT | Cuando está activado, especifica que SQL Server debe revertir automáticamente (ROLLBACK) la transacción actual cuando una instrucción Transact-SQL genera un error de tiempo de ejecución. |
¡Y eso es todo, amigos! Para obtener más información, consulte la Página oficial de Microsoft sobre el comando SET
¡Hasta la próxima!
Comentários (0)
Carregando comentários…