zoukankan      html  css  js  c++  java
  • SQL Server 2008——SQL命令INSERT

    image

    T-SQL的INSERT命令的语法:

    INSERT [INTO]

        {table_name|view_name}

        [{(column_name,column_name,…)}]

        {VALUES (expression,expression,…)}

    方括号内是可选的。

    列名的列表必须用圆括号包围住,逗号分隔。

    关键字VALUES是必须的,数据值用圆括号包围,逗号分隔。

    最好是尽量避免在名称中包含空格;

    如果表或视图的名称与保留字相同或包含空格,则必须用方括号或双引号将名称包围起来。

    不过,如果确实需要,那么最好使用方括号,因为有时要把列数据值设置为类似Acme's Rockets的值,此时用双引号包围Acme's Rockets便于添加数据,如下所示:

    VALUES

             (...

              "Acme's Rockets",

              ...)

    当用双引号来替代方括号包围表或视图名称时,是在使用引用标识符,也就是在创建数据库时,使用了如下设置:

    SET QUOTED_IDENTIFIER ON

    如果数据库设置了“SET QUOTED_IDENTIFIER ON”,那么就不能使用双引号包围类似Acme's Rockets这样的数据值了。

    为了确保查询编辑器设置为允许以双引号分隔字符串,可以在任何需要用到引号的查询处,放置下面的代码:

    SET QUOTED_IDENTIFIER OFF

    GO

    注意,使用SET QUOTED_IDENTIFIER OFF有一个隐藏的麻烦:当使用T-SQL命令时,许多时候可能要用双引号来包围保留字,而非方括号;然而,如果将QUOTED_IDENTIFIER设置为OFF,就只能用方括号包围保留字。如果将QUOTED_IDENTIFIER设置为ON,则无法在名称中输入类似与Acme's这样的字符串,而必须把代码中的单引号用两个单引号来表示:

    VALUES

             (...

              'Acme''s Rockets',

              ...)

    如果没有在INSERT语句中指定列,那么提供的数据值的数目必须与要在其中进行插入的表的列数相同;如果指定了列的列表,则数据值的数目必须与INSERT语句中指定列表中的列数相同。

    建议永远指明列名,即便是以列在表中布局的顺序向表的所有列中插入数据。

    能够从一个INSERT语句插入多行数据,要实现这一目的,可以把要添加的每一行用它自己单独的一对圆括号包围起来,而各对圆括号之间用逗号分隔开,如下:

    VALUES

             (...

              "Acme's Rockets",

              ...),

             (...

              "Tom's Rockets",

              ...),

              …

  • 相关阅读:
    Markdown的简介(转)
    写在二月的尾巴上
    The Pragmatic Programmer 读书笔记
    C/C++语言的一些精简归纳
    一般常用设计模式及原则的思想小结
    常用UML模型简要小结
    LeetCode 101. Symmetric Tree
    LeetCode 100. Same Tree
    LeetCode 99. Recover Binary Search Tree
    线索二叉树的建立与遍历
  • 原文地址:https://www.cnblogs.com/nufangrensheng/p/3875993.html
Copyright © 2011-2022 走看看