Navegador de Archivos
Calendario del Blog
General
SET [QUOTED_IDENTIFIER/ANSI_NULLS] ON/OFF
USE [DataBaseName]
GO
/** Object: Table [dbo].[TableName] Script Date: 11/15/2010 17:32:47 **/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
....
...
..
Y como yo soy muy curioso en esto de conocer que carambas voy a ejecutar en el servidor de SQL, se me ocurrio investigar, para que sirven los benditos ANSI_NULLS, ANSI_PADDING y QUOTED_IDENTIFIER. Los resultados fueron los siguientes:
ANSI_NULLS
Le dice al motor de SQL como debe manejar las comparaciones con los valores NULL. Cuando asignamos esta opción a ON, todas las comparaciones con NULL usando el operador = o el <> nos dará como resultado un FALSE. Lo cual está bien porque es el comportamiento definido en el estándar ISO ya que para realizar las comparaciones con NULL es necesario usar IS NULL y IS NOT NULL. Así que cuando usamos la opción con OFF nos regresara las comparaciones con los operadores = y <> realizará un comportamiento similar. De ahí la razón por la que se asigna siempre a ON al inicio del script.
Ej:
SET ANSI_NULLS ON
IF NULL = NULL
PRINT 'OK'
ELSE
PRINT 'Nada'
--R: Nada
SET ANSI_NULLS ON
IF NULL IS NULL
PRINT 'OK'
ELSE
PRINT 'Nada'
-- R: OK
QUOTED_IDENTIFIER
Cuando es asignado a ON cualquier carácter que se defina con dobles comillas permite tratar los identificadores de SQL (Table, Name, Column, etc) y las reglas de T-SQL para los identificadores no serán aplicadas a estos. Además cualquier carácter que se encuentre con comillas simples ‘’ será tratado como una literal. Ej.
SET QUOTED_IDENTIFIER ON
CREATE TABLE "SELECT" ("TABLE" int) -- Funciona!
GO
SET QUOTED_IDENTIFIER ON
SELECT "algo" AS Value -- Truena, peta, da error poooorqueee “algo” no es literal
Sabemos que "SELECT" y "TABLE" son palabras reservadas pero aún así se crea la tabla ya que se ignoran las reglas en los nombres ... es lo mismo que cuando usamos la sintaxis:
CREATE TABLE [SELECT] ([TABLE] int) -- Funciona!
Ahora intenta probando lo siguiente:
SET QUOTED_IDENTIFIER OFF
CREATE TABLE "SELECT"(“TABLE” int) -- No funciona =(
GO
SET QUOTED_IDENTIFIER OFF
SELECT "algo" AS Value -- Excelente! ahora “algo” es tratado como una literal =)
ANSI_PADDING
Controla el modo en que la columna almacena valores más cortos que el tamaño que tiene definido y cómo almacena valores con espacios en blanco a la derecha en datos de tipo char, varchar, binary y varbinary. Está opción puede ser mejor explicada con un ejemplo, que por cierto lo tomo del MSDN =P
PRINT 'Testing with ANSI_PADDING ON'
SET ANSI_PADDING ON;
GO
CREATE TABLE t1 (
charcol CHAR(16) NULL,
varcharcol VARCHAR(16) NULL,
varbinarycol VARBINARY(8)
);
GO
INSERT INTO t1 VALUES ('No blanks', 'No blanks', 0x00ee);
INSERT INTO t1 VALUES ('Trailing blank ', 'Trailing blank ', 0x00ee00);
SELECT 'CHAR' = '>' + charcol + '<', 'VARCHAR'='>' + varcharcol + '<',
varbinarycol
FROM t1;
GO
PRINT 'Testing with ANSI_PADDING OFF';
SET ANSI_PADDING OFF;
GO
CREATE TABLE t2 (
charcol CHAR(16) NULL,
varcharcol VARCHAR(16) NULL,
varbinarycol VARBINARY(8)
);
GO
INSERT INTO t2 VALUES ('No blanks', 'No blanks', 0x00ee);
INSERT INTO t2 VALUES ('Trailing blank ', 'Trailing blank ', 0x00ee00);
SELECT 'CHAR' = '>' + charcol + '<', 'VARCHAR'='>' + varcharcol + '<',
varbinarycol
FROM t2;
GO
DROP TABLE t1
DROP TABLE t2
Abur!
Para saber más
Estadísticas de visitantes








Comentarios Recientes
- Celulares con Wifi en Como escoger el amor de tu vida.
- master en La diferencia entre un amigo y un novio
- Iván Jaimes en Internet Explorer 8 y la vista compatibilidad
- mauro en Internet Explorer 8 y la vista compatibilidad
- Iván Jaimes en ¿Qué hacer para que te valoren más?
- marcela en ¿Qué hacer para que te valoren más?
- Iván Jaimes en
- karyot en Haces ruido o te gusta volar?
- Iver en Haces ruido o te gusta volar?
- leo_on en Haces ruido o te gusta volar?
- Iván Jaimes en Los detalles hacen la diferencia
- linuxman en Los detalles hacen la diferencia
- Marcelo Araújo en Internet Explorer 8 y la vista compatibilidad
- Iván Jaimes en Código con aroma de mujer
- karyot en Código con aroma de mujer
- Profesor Mamelowsky en Código con aroma de mujer
- karyot en Lo sabroso de la vida
- Iván Jaimes en
- Iván Jaimes en Internet Explorer 8 y la vista compatibilidad
- cordoba en Internet Explorer 8 y la vista compatibilidad


Dejar un comentario