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 ...
随机推荐
- Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: connect timed out
问题: java连接不上redis. 异常信息: Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.ne ...
- jQuery Ajax 上传文件夹及文件
我们先来看一下文件夹结构 这是上传处理的: 看一下系统日志: 升级 HTML5文件实现拖拽上传提示效果改进(支持三种状态提示) 拖拽过程详解: 1:文件未拖出文件选择框的时候提示:将要上传的文件或文件 ...
- 【 D3.js 入门系列 --- 2 】 怎样使用数据和选择元素
本人的个人博客首页为: http://www.ourd3js.com/ ,csdn博客首页为:http://blog.csdn.net/lzhlzz/. 转载请注明出处,谢谢. 接着上一讲的内容,这 ...
- 用jpinyin实现汉字转拼音功能
一.简介 项目地址:https://github.com/stuxuhai/jpinyin JPinyin是一个汉字转拼音的Java开源类库,在PinYin4j的功能基础上做了一些改进. [JPiny ...
- PHP导出大数据
保存到本地 <?php // a db link for queries $lh = mysql_connect( '127.0.0.1', 'root', '' ); // and a con ...
- Netty端口被占用问题
问题: 最近发现Netty项目每次发布的时候Netty在重启时都会报端口被占用的异常, 需要过十几秒左右手动重启一遍, Netty才能恢复正常 目前猜测是由于Tomcat_restart的时候Ne ...
- HTTPS为什么更安全,先看这些 , 网络加密 , 加密解密
投递人 itwriter 发布于 2017-02-27 21:35 评论(10) 有1957人阅读 原文链接 [收藏] « » HTTPS 是建立在密码学基础之上的一种安全通信协议,严格来说是基于 H ...
- springMVC4(14)各类视图输出实例分析
1. 模板视图 FreeMarkerViewResolver . VolocityViewResolver 这两个视图解析器都是 UrlBasedViewResolver 的子类. FreeMarke ...
- 2、Python特征
Python特征 Python编程语言中的定位 脚本语言 高阶动态编程语言 简单易学 Python是一种代表简单主义思想的语言.Python的这种伪代码本质是它最大的优点之一.它使你能够专注于解决问题 ...
- CSS布局中一个简单的应用BFC的例子
什么是BFC BFC(Block Formatting Context),简单讲,它是提供了一个独立布局的环境,每个BFC都遵守同一套布局规则.例如,在同一个BFC内,盒子会一个挨着一个的排,相邻盒子 ...