首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sys.Databases ANSI设置

Sys.Databases ANSI设置
EN

Stack Overflow用户
提问于 2020-07-13 14:28:15
回答 2查看 73关注 0票数 0

由于Server中的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
  • Etc.
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-13 14:44:50

只有在API或会话未指定设置时才使用数据库设置。现代的驱动程序,如SqlClient、ODBC、OLE DB等,默认情况下会自动设置这些选项,尽管它们可以在以后根据需要进行切换。遗留API(例如DB)根本不指定设置,因此在这种情况下使用了设置上的数据库。

票数 2
EN

Stack Overflow用户

发布于 2020-07-13 14:41:02

还可以在数据库级别设置这些设置:

代码语言:javascript
复制
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

尽管如此,连接的/服务器设置似乎确实覆盖了数据库设置,因为下面为这两种设置返回0

代码语言:javascript
复制
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

但是,如果您使用的是包含的数据库,那么这可能是不同的(此时还没有测试)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62878035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档