quoted_identifier off dobles comillas ansi_padding sql-server

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 y varbinary .

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.