SQL Server 2008——SQL命令INSERT

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",
...),
…
SQL Server 2008——SQL命令INSERT的更多相关文章
- SQL Server 2008 /SQL Server 2008 R2 配置数据库邮件
原文:SQL Server 2008 /SQL Server 2008 R2 配置数据库邮件 从2005开始,就引入了"数据库邮件"功能.并且取代SQLMail.原有SQLMail ...
- sql server 2008 sql prompt 自动提示
sql server 2008 在编写SQL脚本的时候,总是希望能提示一些信息,或者自动提示需要查询的表的名字,或者表的基本信息,sql server默认会有一些提示的,如果没有可以设置工具--> ...
- SQL Server 2008 R2 的版本和组件
SQL Server 2008 R2 的版本和组件 SQL Server 2008 R2 其他版本 SQL Server 2008 SQL Server 2005 SQL Server 2012 ...
- SQL Server 2008性能故障排查(一)——概论
原文:SQL Server 2008性能故障排查(一)--概论 备注:本人花了大量下班时间翻译,绝无抄袭,允许转载,但请注明出处.由于篇幅长,无法一篇博文全部说完,同时也没那么快全部翻译完,所以按章节 ...
- SQLServer2008修改sa密码的方法与SQL server 2008数据库的备份与还原
sa密码的修改转载自:http://blog.csdn.net/templar1000/article/details/20211191 SQL server 2008数据库的备份与还原转自 :htt ...
- SQL Server 2008在Windows 10上不支持
https://support.microsoft.com/en-us/kb/2681562 For SQL Server 2008 R2 SQL Server 2008 R2 is not supp ...
- SQL Server 2008, 2008 R2, 2012 and 2014 完全支持TLS1.2加密传输
SQL Server 2008, 2008 R2, 2012 and 2014 完全支持TLS1.2加密传输 微软高兴地宣布所有主流SQL Server客户端驱动和SQL Server发行版已经支持T ...
- Windows2003操作系统SQL Server 2008安装图解(详细)
最近不少用户在windows2003 server 32位操作系统上安装SQL Server2008总是失败,出现大量错误.今天经过通过我反复测试安装,找出了一个便捷的安装方法,节省大家宝贵时间,具体 ...
- SQL server 2008数据库的备份与还原(转)
一.SQL数据库的备份: 1.依次打开 开始菜单 → 程序 → Microsoft SQL Server 2008 → SQL Server Management Studio → 数据库:Dsi ...
随机推荐
- 【ELK】【docker】6.Elasticsearch 集群启动多节点 + 解决ES节点集群状态为yellow
本章其实是ELK第二章的插入章节. 本章ES集群的多节点是docker启动在同一个虚拟机上 ====================================================== ...
- 使用开源库 Objective-C RegEx Categories 处理正则表达式
Objective-C RegEx Categories https://github.com/bendytree/Objective-C-RegEx-Categories 使用说明:将 RegExC ...
- linux中解压rar文件
linux平台默认是不支持RAR文件的解压,需要安装linux版本的RAR压缩软件,下载地址为:http://www.rarlab.com/download.htm 下载之后进行解压之后,进入rar目 ...
- 实用ExtJS教程100例-007:ExtJS中Window组件最小化
在上一节中我们演示了如何使用ExtJS的Window组件,这篇内容中我们来演示一下如何将窗口最小化. 要让ExtJS标题栏中显示最小化按钮并不麻烦,只需要设置 minimizable: true 即可 ...
- [DEFCON全球黑客大会] CTF(Capture The Flag)
copy : https://baike.baidu.com/item/ctf/9548546?fr=aladdin CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的 ...
- Orchard之Module升级
在上一篇中,我们提到了 Migrations,这一篇稍微衍生一下. 1:Migrations 是什么 Orchard 提供了模块升级的功能,即,如果我们模块发布后,需要进行升级,我们可以通过编码来实现 ...
- 虚拟机内存复用技术的比较(XEN系统)
技术途径 业界就该问题定义为虚拟机内存复用(复用干嘛? 当然是为了跑更多的虚拟机呀!) :memory overcommit.围绕次问题主要有4种技术手段,下面简要介绍和分析: 1 气泡驱动(ball ...
- JavaScript递归方法 生成 json tree 树形结构数据
//递归方法 生成 json tree 数据 var getJsonTree = function(data, parentId) { var itemArr = []; for (var i = 0 ...
- 绝对定位常见误区:position:absolute相对于谁定位、及当溢出时怎么隐藏
1.绝对定位元素溢出父元素,怎么隐藏问题? 通常,为了让DIV子元素超出部分隐藏,都是在父元素设置overflow:hidden,这样即可防止子元素撑开父元素,使子元素能够溢出隐藏! 但是,对于pos ...
- 让App中增加LruCache缓存,轻松解决图片过多造成的OOM
上次有过电话面试中问到Android中的缓存策略,当时模糊不清的回答,如今好好理一下吧. Android中普通情况下採取的缓存策略是使用二级缓存.即内存缓存+硬盘缓存->LruCache+Dis ...