SQL存储过程中 SET ANSI_NULLS ON 和 SET QUOTED_IDENTIFIER ON的作用和详解

今天在写SQL Server存储过程中遇到的,做个整理归纳

USE [ABInbevDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

实际上,我们在创建存储过程的时候,这几行的代码是会自动创建出来的,那么先解释下两个标准的概念。

两个标准

当我们在编写存储过程时,存在两种标准可供选择:ANSI_NULLS 和 QUOTED_IDENTIFIER。下面我会对这两个标准进行详细说明:

  1. ANSI_NULLS(ANSI 空值处理规则):

    • SET ANSI_NULLS ON:启用 ANSI 空值处理规则。在比较和操作 NULL 值时,使用 ANSI 标准。它要求任何包含 NULL 值的比较都返回未知(UNKNOWN)结果。
    • 比较 NULL 值:当使用 = 或 <> 等比较运算符与 NULL 值进行比较时,结果将返回未知(UNKNOWN),而不是 TRUE 或 FALSE。这是 ANSI 标准的要求。
    • 操作 NULL 值:在执行某些操作时,如连接、聚合函数等,涉及到 NULL 值的行为也符合 ANSI 标准。例如,在连接操作中,如果有一个或多个 NULL 值,连接将不返回任何匹配。
  2. QUOTED_IDENTIFIER(引号标识符):

    • SET QUOTED_IDENTIFIER ON:启用引号标识符。在引用对象名称时,使用双引号作为标识符的限定符。
    • 引号标识符:引号标识符是用于引用包含特殊字符或保留字的对象名称的方法。在 SQL Server 中,通常使用双引号 (“”) 将标识符括起来。
    • 特殊字符和保留字:有些对象名称可能包含特殊字符,如空格或减号。在这种情况下,使用引号标识符是必须的,以区分标识符与字符本身的含义。此外,某些词可能是 SQL 的保留字,如果要使用它们作为对象名称,也需要使用引号标识符。

作用

这两个设置的默认状态在大多数情况下都是启用的(即 ON)。因此,在大多数情况下,不需要在存储过程中显式设置这些选项,除非你的数据库或服务器级别设置已更改。按照最佳实践,建议始终使用这两个设置,以确保代码在不同环境中的一致性和可移植性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/59552.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【办公自动化】使用Python批量处理Excel文件并转为csv文件

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

C++ Qt 中QMimeDatabase类详细介绍以及应用场景

C Qt 中QMimeDatabase类详细介绍以及应用场景 文章目录 C Qt 中QMimeDatabase类详细介绍以及应用场景一、QMimeDatabase类是什么&#xff1f;二、QMimeDatabase类中的关键功能和特点三、QMimeDatabase的用法四、QMimeDatabase的应用场景 一、QMimeDatabase类是什么&#xff1f;…

Hbase文档--架构体系

阿丹&#xff1a; 基础概念了解之后了解目标知识的架构体系&#xff0c;就能事半功倍。 架构体系 关键组件介绍&#xff1a; HBase – Hadoop Database&#xff0c;是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统&#xff0c;利用HBase技术可在廉价PC Server上搭建起…

WordArt Designer:基于用户驱动与大语言模型的艺术字生成

AIGC推荐 FaceChain人物写真开源项目&#xff0c;支持风格与穿着自定义&#xff0c;登顶github趋势榜首&#xff01; 前言 本文介绍了一个基于用户驱动&#xff0c;依赖于大型语言模型(LLMs)的艺术字生成框架&#xff0c;WordArt Designer。 该系统包含四个关键模块:LLM引擎、…

19.CSS雨云动画特效

效果 源码 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Cloud & Rain Animation</title><link rel="stylesheet" href="style.css"> </head> <bo…

数字证书有什么作用,为什么要用数字证书?

数字证书是一种用于加密和验证数据的安全工具&#xff0c;它在现代通信和互联网领域起着重要的作用。下面安策给大家介绍一下数字证书的几个主要作用和为什么要使用数字证书的原因&#xff1a; 身份认证&#xff1a;数字证书可用于在线交互中验证身份。通过使用证书进行身份认证…

VB房屋租凭管理系统设计与实现

摘要 随着我国市场经济的快速发展和人们生活水平的不断提高,简单的租凭服务已经不能满足人们的需求。如何利用先进的管理手段,提高房屋租凭管理水平,是当今社会所面临的一个重要课题。本文通过用VB6.0编写房屋租赁管理系统,利用软件工程原理,采用面向对象的编程方法,其开…

【LeetCode】394.字符串解码

题目 给定一个经过编码的字符串&#xff0c;返回它解码后的字符串。 编码规则为: k[encoded_string]&#xff0c;表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的&#xff1b;输入字符串中没有额外的空格&#x…

在 Spring Boot 中集成 MinIO 对象存储

MinIO 是一个开源的对象存储服务器&#xff0c;专注于高性能、分布式和兼容S3 API的存储解决方案。本文将介绍如何在 Spring Boot 应用程序中集成 MinIO&#xff0c;以便您可以轻松地将对象存储集成到您的应用中。 安装minio 拉取 minio Docker镜像 docker pull minio/minio创…

GEE/PIE遥感大数据处理与典型案例丨数据整合Reduce、云端数据可视化、数据导入导出及资产管理、机器学习算法等

目录 ​专题一&#xff1a;初识GEE和PIE遥感云平台 专题二&#xff1a;GEE和PIE影像大数据处理基础 专题三&#xff1a;数据整合Reduce 专题四&#xff1a;云端数据可视化 专题五&#xff1a;数据导入导出及资产管理 专题六&#xff1a;机器学习算法 专题七&#xff1a;…

适配器设计模式

目录 一、适配器模式1.类适配器模式2.对象适配器模式3.接口适配器 二、适配器模式应用场景三、适配器模式的优缺点 一、适配器模式 B站&#xff1a;java架构师 定义&#xff1a;适配器模式把一个类的接口变换成客户端所期待的另一种接口&#xff0c;从而使原本因接口不匹配而…

vue 孙组件给爷组件传递数据,本质层层传递

1 子传父 例子 vue 子组件 emit传递事件和事件数据给父组件_tenc1239的博客-CSDN博客 2 子传父 父传爷 层层套娃1中例子 2.1 定义传递事件 传值data // 孙组件 methods: {sendDataToGrandpa() {const data hello;this.$emit(sendDataToGrandpa, data);} } 2.2 中间父组件…

C# Unity 一个Key对应多个值的字典

C# Unity 一个Key对应多个值的字典 1.目的 C# 中没有提供一个Key对应多个值的容器&#xff0c;需要自己封装一层&#xff0c;实现方式很多&#xff0c;可以使用链表去实现&#xff08;分区域划分一个链表即可&#xff09;但是这样做比较复杂但是频繁插入要比使用List性能好一…

网络字节序——TCP接口及其实现简单TCP服务器

网络字节序——TCP接口及其实现简单TCP服务器 文章目录 网络字节序——TCP接口及其实现简单TCP服务器简单TCP服务器的实现1. 单进程版&#xff1a;客户端串行版2. 多进程版&#xff1a;客户端并行版netstat查看网络信息3.多线程版&#xff1a;并行执行log.hpp 守护进程fg、bg s…

OpenGl图像的位移及旋转

一般而言&#xff0c;改变物体的位置时&#xff0c;需要改变每一帧所有顶点的坐标&#xff0c;计算量巨大 可以将每一个顶点用向量值表示&#xff0c;使用位移矩阵&#xff0c;缩放矩阵&#xff0c;旋转矩阵对顶点进行操作。 顶点着色器&#xff1a; #version 330 core layo…

pandas由入门到精通-pandas的数据结构

pandas数据分析-pandas的数据结构 pandas 数据结构Series1. 创建Series数组2. 性质3. 索引4. 运算DataFrame1. 创建Df数组2. 性质3.索引4. 对列进行增删改Index Objects本文介绍pandas中一些常用的属性方法的概述,给读者提供快速学习的架构和思路。表格中提供的一些参数方法没…

中欧财富:分布式数据库的应用历程和 TiDB 7.1 新特性探索

作者&#xff1a;张政俊 中欧财富数据库负责人 中欧财富是中欧基金控股的销售子公司&#xff0c;旗下 APP 实现业内基金品种全覆盖&#xff0c;提供基金交易、大数据选基、智慧定投、理财师咨询等投资工具及服务。中欧财富致力为投资者及合作伙伴提供一站式互联网财富管理解决方…

redis缓存雪崩、穿透、击穿解决方案

redis缓存雪崩、穿透、击穿解决方案 背景缓存雪崩缓存击穿缓存穿透总结背景 关于缓存异常,我们常见的有三个问题:缓存雪崩、缓存击穿、缓存穿透。这三个问题一旦发生,会导致大量请求直接落到数据库层面。如果请求的并发量很大,会影响数据库的运行,严重的会导致数据库宕机…

C++ Day6

目录 一、菱形继承 1.1 概念 1.2 格式 二、虚继承 2.1 作用 2.2 格式 2.3注意 三、多态 3.1函数重写 3.2 虚函数 3.3 赋值兼容规则 3.4 多态中&#xff0c;函数重写的原理 3.5 虚析构函数 3.5.1 格式 3.6 纯虚函数 3.6.1格式 四、抽象类 五、模板 5.1模板的特…

Java 语言实现插入排序算法

【引言】 插入排序算法是一种简单且常用的排序算法。它通过依次将未排序的元素插入已排序序列中的正确位置来达到排序的目的。本文将使用Java高级语言实现插入排序算法&#xff0c;并讲解其核心思想和代码实现。 【算法思想】 插入排序的核心思想是通过构建有序序列&#xff0…