sql-server - off - comillas dobles sql server
SQL Server ANSI_Padding (2)
Si hago clic con el botón derecho en una tabla en SQL Server Management Studio y selecciono "Tabla de secuencias de comandos como> Crear en> Nueva ventana del Editor de consultas", el código que aparece contiene:
SET ANSI_PADDING EN
.... crea la tabla ...
SET ANSI_PADDING OFF
Entonces, supongo que si ANSI_Padding está activado o desactivado, afecta a toda la base de datos y se activa para crear una tabla y luego se apaga de nuevo.
¿Qué sucede si crea una tabla con ANSI_Padding desactivado? ¿Cómo puedes encenderlo para esa mesa?
Entonces, supongo que si ANSI_Padding está activado o desactivado, afecta a toda la base de datos y se activa para crear una tabla y luego se apaga de nuevo.
no, la opción SET solo afecta el contexto de su conexión, si entran 2 conexiones y una tiene ANSI_PADDING OFF y la otra ON no afectan la otra conexión. Sin embargo ... la tabla creada en una conexión tendrá el comportamiento que le dio la configuración.
lea más aquí http://msdn.microsoft.com/en-us/library/ms190356.aspx
Entonces, si la conexión 1 viene con el conjunto ansi_nulls desactivado, select * from bla where col = null
funcionará
sin embargo, esto no funcionará para la conexión 2 si viene con la configuración predeterminada de ansi_nulls (ON)
puede ver cuáles son sus configuraciones ejecutando dbcc useroptions
o si está en 2005 y hasta
SELECT SPID,VALUE,ANSI_SETTING
FROM (
SELECT @@SPID AS SPID,
CASE quoted_identifier
WHEN 1 THEN ''SET'' ELSE ''OFF'' END QUOTED_IDENTIFIER,
CASE arithabort
WHEN 1 THEN ''SET'' ELSE ''OFF'' END ARITHABORT,
CASE ansi_null_dflt_on
WHEN 1 THEN ''SET'' ELSE ''OFF'' END ANSI_NULL_DFLT_ON,
CASE ansi_defaults
WHEN 1 THEN ''SET'' ELSE ''OFF'' END ANSI_DEFAULTS ,
CASE ansi_warnings
WHEN 1 THEN ''SET'' ELSE ''OFF'' END ANSI_WARNINGS,
CASE ansi_padding
WHEN 1 THEN ''SET'' ELSE ''OFF'' END ANSI_PADDING,
CASE ansi_nulls
WHEN 1 THEN ''SET'' ELSE ''OFF'' END ANSI_NULLS,
CASE concat_null_yields_null
WHEN 1 THEN ''SET'' ELSE ''OFF'' END CONCAT_NULL_YIELDS_NULL
FROM sys.dm_exec_sessions
WHERE session_id = @@SPID ) P
UNPIVOT (VALUE FOR ANSI_SETTING IN(
QUOTED_IDENTIFIER,ARITHABORT,ANSI_NULL_DFLT_ON,
ANSI_DEFAULTS,ANSI_WARNINGS,
ANSI_PADDING,ANSI_NULLS,CONCAT_NULL_YIELDS_NULL
)
) AS unpvt
SET ANSI_PADDING Controla la forma en que la columna almacena valores más cortos que el tamaño definido de la columna y la forma en que la columna almacena los valores que tienen espacios en blanco finales en los datos
char
,varchar
,binary
yvarbinary
.En una versión futura de MicrosoftSQL Server, ANSI_PADDING siempre estará ENCENDIDO y cualquier aplicación que establezca explícitamente la opción en APAGADO producirá un error. Evite usar esta función en un nuevo trabajo de desarrollo y planee modificar las aplicaciones que actualmente usan esta función.
Esta configuración afecta solo a la definición de nuevas columnas. Una vez creada la columna, SQL Server almacena los valores según la configuración cuando se creó la columna. Las columnas existentes no se ven afectadas por un cambio posterior a esta configuración.