zoukankan      html  css  js  c++  java
  • SQL Server知识详解

    1.SET NOCOUNT ON的作用:
    作用:阻止在结果集中返回显示受T-SQL语句或则usp影响的行计数信息。

    语法:SET NOCOUNT {ON | OFF}

    详解:当SET ONCOUNT ON时候,不返回计数,当SET NOCOUNT OFF时候,返回计数;
    即使当SET NOCOUNT ON 时候,也更新@@RowCount;
    当SET NOCOUNT on时候,将不向客户端发送存储过程每个语句的DONE_IN_proc消息,如果存储过程中包含一些并不返回实际数据的语句,网络通信流量便会大量减少,可以显著提高应用程序性能;

    SET NOCOUNT 指定的设置时在执行或运行时候生效,分析时候不生效。

    测试:
    SQL语句:
    USE master
    GO
    SET NOCOUNT OFF;
    SELECT TOP 5 OrderDate FROM Orders
    GO

    结果:

    2.SET ANSI_NULLS ON的作用:
    作用:指定在对空值使用等于 (=) 和不等于 (<>) 比较运算符时,这些运算符的 SQL-92 遵从行为

    语法:SET ANSI_NULLS {ON | OFF}

    详解:SQL-92 标准要求对空值的等于 (=) 或不等于 (<>) 比较取值为 FALSE。当 SET ANSI_NULLS 为 ON 时,即使 column_name 中存在空值,使用 WHERE column_name = NULL 的 SELECT 语句仍返回零行。即使 column_name 中存在非空值,使用 WHERE column_name <> NULL 的 SELECT 语句仍返回零行。
    当 SET ANSI_NULLS 为 OFF 时,等于 (=) 和不等于 (<>) 比较运算符不遵从 SQL-92 标准。使用 WHERE column_name = NULL 的 SELECT 语句返回 column_name 中含有空值的行。使用 WHERE column_name <> NULL 的 SELECT 语句返回列中含有非空值的行。此外,使用 WHERE column_name <> XYZ_value 的 SELECT 语句返回所有非 XYZ 值和非 NULL的行。

    3.SET QUOTED_IDENTIFIER ON的作用:

    语法:SET QUOTED_IDENTIFIER {ON | OFF}

    作用:当SET QUOTED_IDENTIFIER ON " "等同于[ ] 表示数据库对象;当SET QUOTED_IDENTIFIER OFF " "等同于' '表示字符串边界;

    代码

    Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 SET QUOTED_IDENTIFIER ON
    SELECT * FROM "USER" WHERE a='netasp'

    SET QUOTED_IDENTIFIER ON
    SELECT * FROM [USER] WHERE a='netasp'

    SET QUOTED_IDENTIFIER OFF
    SELECT * FROM [USER] WHERE a="netasp"

    SET QUOTED_IDENTIFIER OFF
    SELECT * FROM [USER] WHERE a= 'netasp'

       当在数据库中新建一个名字是USER的表的时候,常常会带来一些麻烦,因为USER是SQL中的关键字,但是上面的几个语句不会报错。再说一个概念:标示符是SQL中的中括号[]。
    

      当SET QUOTED_IDENTIFIER值为ON时,双引号内的字符被当作是数据库对象。就是说双引号" "和标识符[]效果是一样样的,他们都表示引用的字符是数据库对象。单引号'表示字符串的边界。

      当SET QUOTDE_IDENTIFIER OFF时,双引号被解释为字符串的边界,和单引号的作用是类似的。就是说双引号"不能当做标识符使用,但是可以当做字符边界,和单引号'的效果是一样样的。

    4.SQL 中 Date 与Datetime的区别:

    Date是SQL Server 2008新引进的数据类型。它表示一个日子,不包含时间部分,可以表示的日期范围从公元元年1月1日到9999年12月31日。只需要3个字节的存储空间。
    DateTime 日期和时间部分,可以表示的日期范围从公元1753年1月1日00:00:00.000 到9999年12月31日23:59:59.997 ,精确到3.33毫秒,它需要8个字节的存储空间。

    5.varchar和nvarchar区别:

    varchar(n)
    长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。

    nvarchar(n)
    包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。

    两字段分别有字段值:我和coffee
    那么varchar字段占2×2+6=10个字节的存储空间,而nvarchar字段占8×2=16个字节的存储空间。
    如字段值只是英文可选择varchar,而字段值存在较多的双字节(中文、韩文等)字符时用nvarchar

    varchar(4) 可以输入4个字节,也可以输入两个汉字
    nvarchar(4) 可以输四个汉字,也可以输4个字母,但最多四个

  • 相关阅读:
    jquery 添加关键字小插件
    打印出所有每一位都与其他位不重复的自然数
    尾递归版,斐波那契数列
    如何在移动端宽度自适应实现正方型?
    css隐藏元素的六类13种方法
    如何给行内元素设置宽高?
    css实现垂直水平居中的方法
    pwa
    目录树生成工具treer
    服务端返回的json数据,导致前端报错的原因及解决方法
  • 原文地址:https://www.cnblogs.com/HenryWEI/p/9582897.html
Copyright © 2011-2022 走看看