SQL之CURD操作(一)

INSERT语句

INSERT VALUES语句可以将基于指定值的行插入表。

SQL Server2008增强了VALUES语句的功能,允许在一条语句中指定由逗号隔开的多行记录。例如:

INSERT INTO T_Order

VALUES (1,1,'冰箱','2017-01-01'),

(2,1,'洗衣机','2017-01-01'),

(3,1,'电视','2017-01-01')

这个操作是原子操作,这意味这如果有任何一行报错,那么所有行都会插入失败。

 

SQL Server2008还增强了VALUES子句的功能,现在可以用它来构建虚拟表(virtual table)。这种功能成为行值构造函数(row value contructor),或表值构造函数(table value contructor)。例如:

SELECT * FROM

(VALUES(1,'USA'),(2,'CHI'),(3,'FRA'))

AS O(ID,COUNTRY)

它会生成如下表:

 

可以使用   INSERT INTO <target_table> SELECT <columns> FROM <source_table>   高效地将大量行从一个表(例如临时表)传输到按最小方式记录日志的其他表中。 按最小方式记录日志可以提高语句的性能,减少在事务期间此操作填充可用事务日志空间的可能性。

 

INSERT EXEC语句可以把存储过程或动态SQL批处理返回的结果及插入表中

 

SELECT  *  INTO <target_table>  From <source_table> 语句的作用是创建一个目标表,并用返回的结果填充它。

SELECT INTO它可以复制来源的表的基本结构(包括列名,数据结构,是否允许为NULL及IDENTITY属性)和数据。不过它不会复制索引,触发器,约束,如果需要这些东西,你可以手动添加。

 

SELECT  INTO 的另一个优点是它会按照最小日志记录模式来执行操作,与完整日志模式相比,这种模式执行效率很高

 

BULK  INSERT语句用于将文件中的数据导入一个已经存在的表。

 

IDENTITY属性,被它标识的数字类型的列,能在插入数据时自动递增。

如果你想获取这个新生成的标识值(例如:你想获取新增的对象),可以查询@@IDENTITY或者SCOPE_IDENTITY()推荐使用SCOPE_IDENTITY()因为它会返回当前作用域内会话生成的最后一个标识符,而@@IDENTITY则不会考虑。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值