Sql Server系列:Insert语句

1. INSERT语法

[ WITH <common_table_expression> [ ,...n ] ]
INSERT
{
        [ TOP ( expression ) [ PERCENT ] ]
        [ INTO ]
        { <object> | rowset_function_limited
          [ WITH ( <Table_Hint_Limited> [ ...n ] ) ]
        }
    {
        [ ( column_list ) ]
        [ <OUTPUT Clause> ]
        { VALUES ( { DEFAULT | NULL | expression } [ ,...n ] ) [ ,...n     ]
        | derived_table
        | execute_statement
        | <dml_table_source>
        | DEFAULT VALUES
        }
    }
}
[;]

  在该结构中,INSERT为该语句的实际操作,INTO关键字无真正含义,目的是为增强这个语句的可读性。INTO关键字为可选,建议在语句中加入该关键字。在使用Entity Framework添加数据时,执行的INSERT语句是没有使用INTO关键字的。

2. 单条插入

INSERT INTO [dbo].[Product]
    ([ProductName], [UnitPrice], [CreateDate])
VALUES
    (‘LINQ to SQL‘, 100, GETDATE());

3. 多条插入

  SQL Server 2012支持一次插入多行记录,实现方式为在需要添加额外的用逗号分隔的插入值。

INSERT INTO [dbo].[Product]
    ([ProductName], [UnitPrice], [CreateDate])
VALUES
    (‘LINQ to SQL‘, 100, GETDATE()),
    (‘LINQ to Object‘, 90, GETDATE());

4. INSERT INTO ... SELECT语句

  在一次INSERT多条记录时,且需要插入的数据是从其他的数据源选择获取时,可以使用INERT INTO...SELECT语句。

  不同的数据源包括:

  ◊ 数据库中的另一个表

  ◊ 同一台服务器上的另外一个数据库中的数据表

  INERT INTO...SELECT语法:

INSERT INTO <table name>
[<column list>]
<SELECT statement>

  示例:从另外一个数据库的数据表作为数据源一次插入多条记录

USE Portal
GO

INSERT INTO [dbo].[Product]
    ([ProductName], [UnitPrice], [CreateDate])
SELECT
    [ProductName], [UnitPrice], [CreateDate]
FROM
    [Northwind].[dbo].[Product]

GO

  示例:声明table类型的变量,向变量中一次插入多条记录

USE Portal
GO

DECLARE @tbl TABLE
(
    ProductName VARCHAR(50) NULL,
    CreateDate DATETIME NULL
)
INSERT INTO @tbl
SELECT
    [ProductName], [CreateDate]
FROM
    [dbo].[Product]

SELECT * FROM @tbl

GO

5. 参考资料:

  http://msdn.microsoft.com/zh-cn/library/ms174335.aspx

时间: 2024-11-05 22:33:13

Sql Server系列:Insert语句的相关文章

sql server导出insert语句

在所需要导出数据库上右键 选择[任务] 然后选择[生成脚本] 选择数据库,点击下一步到[数据脚本选项] 编写数据的脚本 选择为true  这一步很重要 下一步选择要导出的对象 下一步选择表 点击完成 等待数据库相应 ok

SQL Server性能常用语句

查看各表的数据行数 SELECT o.name, i. ROWS FROM sysobjects o, sysindexes i WHERE o.id = i.id AND o.Xtype = 'U' AND i.indid < 2 ORDER BY o.name; 计算数据库中各个表每行记录所占用空间 --SELECT * FROM Employees AS e; CREATE TABLE #tablespaceinfo ( nameinfo VARCHAR(50) , rowsinfo BI

【转载】SQL Server - 使用 Merge 语句实现表数据之间的对比同步

原文地址:SQL Server - 使用 Merge 语句实现表数据之间的对比同步 表数据之间的同步有很多种实现方式,比如删除然后重新 INSERT,或者写一些其它的分支条件判断再加以 INSERT 或者 UPDATE 等.包括在 SSIS Package 中也可以通过 Lookup, Condition Split 等多种 Task 的组合来实现表数据之间的同步.在这里 "同步" 的意思是指每次执行一段代码的时候能够确保 A 表的数据和 B 表的数据始终相同. 可以通过 SQL Se

SQL Server中DML语句要申请的锁

对于select语句: 1.当采用表扫描时,会直接锁定page,而不是锁定具体的某条记录,所以会有这些锁: A.数据库S锁 B.表的IS锁 C.页的S锁 2.当采用索引来查找数据时,会锁定具体的记录,所以会有这些锁: A.数据库S锁 B.索引中page的IS锁 C.索引中page中的key的S锁 D.表的IS锁 E.页的IS锁 F.RID的S锁 3.对于读过的页面,会加一个IS锁. 对于使用的索引,会对key加上S锁,对索引key所在的页面会加上IS锁. 在查询过程中,会对每一条读到的记录或ke

Sql server的Merge语句,源表中如果有重复数据会导致执行报错

用过sql server的Merge语句的开发人员都应该很清楚Merge用来做表数据的插入/更新是非常方便的,但是其中有一个问题值得关注,那就是Merge语句中的源表中不能出现重复的数据,我们举例来说明这个问题. 现在我们有一张表叫T_Class_A,其建表语句如下: CREATE TABLE [dbo].[T_Class_A]( [ID] [int] IDENTITY(1,1) NOT NULL, [ClassName] [nvarchar](50) NULL, [StudentTotalCo

SQL Server - 使用 Merge 语句实现表数据之间的对比同步

原文:SQL Server - 使用 Merge 语句实现表数据之间的对比同步 表数据之间的同步有很多种实现方式,比如删除然后重新 INSERT,或者写一些其它的分支条件判断再加以 INSERT 或者 UPDATE 等.包括在 SSIS Package 中也可以通过 Lookup, Condition Split 等多种 Task 的组合来实现表数据之间的同步.在这里 "同步" 的意思是指每次执行一段代码的时候能够确保 A 表的数据和 B 表的数据始终相同. 可以通过 SQL Serv

Sql server bulk insert文本文件插入到数据库

Bulk Insert Sql server 的bulk insert语句可以高效的导入大数据量的平面文件(txt,csv文件)到数据库的一张表中,其用法如下: bulk insert test from 'f:\test.txt' with (fieldterminator=',', rowterminator='\n') 其中"test"是数据库表的名字,"f:\test.txt"是导入平面文件的地址,fieldterminator指定平面文件中列的分隔符是什么

SQL Server 强行Insert包含自增列值的记录

SET IDENTITY_INSERT 表 ON INSERT INTO 表 ([ID] ,[SequenceNumber] ,[EnumCode] ,[Description]) VALUES (6 ,1 ,'Empty' ,'Empty') SET IDENTITY_INSERT 表 OFF 此处ID为自增列 SQL Server 强行Insert包含自增列值的记录,布布扣,bubuko.com

SQL Server 系列文章快速导航(SWF版)

一.前言 在博客园写博客不自不觉已经有5个年头了,一开始只是为了记录工作中遇到的问题和解决办法,后来写的文章不自不觉的侧重在SQL Server方面的技术文章,在2014年1月终于鼓起勇气申请了微软SQL Server方面的最有价值专家(MVP),并荣幸的在4月份获得此殊荣. 今天整理了下文章,为了让大家更容易检索到(这里指人而不是所谓的SEO)我的文章,所以生成了一份SWF,以图形的方式,大家可以通过里面的链接快速进入文章,而且大家也可以下载这份SWF到本地,同样可以快速浏览. 二.SQL S

SQL Server系列文章目录

这里整理了我学习SQL Server的所有文章,包括从基础到高级的. 一,SQL Server数据类型 1,SQL Server中开发常用的数据类型 二,单表查询和多表查询   三,增,删,改   四,表和视图   五,存储过程   六,事务和并发   七,临时表   八,动态SQL   九,错误处理   十,SQL Server常用函数 SQL Server系列文章目录