Sys.Databases ANSI 设置
Sys.Databases ANSI Settings
使用 SQL 服务器中的 ANSI 设置通常是在逐个连接的基础上处理的,有谁知道 sys.databases 中的 ANSI 设置有什么用?
- is_ansi_nulls_on
- is_ansi_padding_on
- is_ansi_warnings_on
- is_ansi_null_default_on
- is_concat_null_yields_null_on
- 等等
您仍然可以在数据库级别设置这些设置:
USE master;
GO
CREATE DATABASE ANSI_NULLS_ON;
GO
ALTER DATABASE ANSI_NULLS_ON SET ANSI_NULLS ON;
GO
CREATE DATABASE ANSI_NULLS_OFF;
GO
ALTER DATABASE ANSI_NULLS_OFF SET ANSI_NULLS OFF;
GO
SELECT is_ansi_nulls_on
FROM sys.databases
WHERE [name] IN (N'ANSI_NULLS_ON',N'ANSI_NULLS_OFF');
GO
但是,连接's/server 的设置似乎确实覆盖了数据库设置,如下所示 returns 0
两者:
USE ANSI_NULLS_ON;
GO
SELECT CASE WHEN NULL = NULL THEN 1 ELSE 0 END AS ANSI_NULLS_ON;
GO
USE ANSI_NULLS_OFF;
GO
SELECT CASE WHEN NULL = NULL THEN 1 ELSE 0 END AS ANSI_NULLS_ON;
GO
但是,如果您使用的是包含数据库,那么这可能会有所不同(目前尚未测试)。
仅当API或会话未指定设置时才使用数据库设置。现代驱动程序,如 SqlClient、ODBC、OLE DB 等,默认情况下会自动将这些选项设置为 ON,尽管以后可以根据需要切换它们。旧版 APIs(例如 DB-LIB)根本不指定设置,因此在这种情况下使用数据库 ON 设置。
使用 SQL 服务器中的 ANSI 设置通常是在逐个连接的基础上处理的,有谁知道 sys.databases 中的 ANSI 设置有什么用?
- is_ansi_nulls_on
- is_ansi_padding_on
- is_ansi_warnings_on
- is_ansi_null_default_on
- is_concat_null_yields_null_on
- 等等
您仍然可以在数据库级别设置这些设置:
USE master;
GO
CREATE DATABASE ANSI_NULLS_ON;
GO
ALTER DATABASE ANSI_NULLS_ON SET ANSI_NULLS ON;
GO
CREATE DATABASE ANSI_NULLS_OFF;
GO
ALTER DATABASE ANSI_NULLS_OFF SET ANSI_NULLS OFF;
GO
SELECT is_ansi_nulls_on
FROM sys.databases
WHERE [name] IN (N'ANSI_NULLS_ON',N'ANSI_NULLS_OFF');
GO
但是,连接's/server 的设置似乎确实覆盖了数据库设置,如下所示 returns 0
两者:
USE ANSI_NULLS_ON;
GO
SELECT CASE WHEN NULL = NULL THEN 1 ELSE 0 END AS ANSI_NULLS_ON;
GO
USE ANSI_NULLS_OFF;
GO
SELECT CASE WHEN NULL = NULL THEN 1 ELSE 0 END AS ANSI_NULLS_ON;
GO
但是,如果您使用的是包含数据库,那么这可能会有所不同(目前尚未测试)。
仅当API或会话未指定设置时才使用数据库设置。现代驱动程序,如 SqlClient、ODBC、OLE DB 等,默认情况下会自动将这些选项设置为 ON,尽管以后可以根据需要切换它们。旧版 APIs(例如 DB-LIB)根本不指定设置,因此在这种情况下使用数据库 ON 设置。