如果将值插入到表的标识列中,需要启用 SET IDENTITY_INSERT。

举例如下:

创建表Orders、Products,Orders表与Products表分别有标识列OrderID与ProductID:

--表Orders,Products
CREATE TABLE Orders(
OrderID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
PriceDate DateTime
) CREATE TABLE Products(
ProductID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
PriceDate Datetime
)

当我们用如下插入语句往Orders表中插入数据:

INSERT INTO Orders (OrderID ,PriceDate ) VALUES(1,GETDATE())

执行此语句后,会出现如下错误:

把插入语句做如下修改:

SET IDENTITY_INSERT Orders ON
INSERT INTO Orders (OrderID ,PriceDate ) VALUES(1,GETDATE())

此时执行成功;

我们在向Products表做如上插入:

SET IDENTITY_INSERT Products ON
INSERT INTO Products (ProductID,PriceDate ) VALUES(1,GETDATE())

产生如下错误:

我们对sql做如下修改后,products表插入数据成功

--修改后的sql
SET IDENTITY_INSERT Orders ON
INSERT INTO Orders (OrderID ,PriceDate ) VALUES(1,GETDATE())
SET IDENTITY_INSERT Orders OFF SET IDENTITY_INSERT Products ON
INSERT INTO Products (ProductID,PriceDate ) VALUES(1,GETDATE())
SET IDENTITY_INSERT Products OFF

可以看到当我们对表的Identity_Insert 的启用与关闭时成对出现,即

SET IDENTITY_INSERT Products ON
--Code
SET IDENTITY_INSERT Products OFF

如果我们用下面的语句往Products表中插入数据

SET IDENTITY_INSERT Products ON
INSERT INTO Products SELECT * FROM Orders
SET IDENTITY_INSERT Products OFF

出现如下错误:

修改上面t-sql语句:

SET IDENTITY_INSERT Products ON
INSERT INTO Products(ProductID,PriceDate) SELECT * FROM Orders
SET IDENTITY_INSERT Products OFF

可以知道如果对标识列进行插入,那么需要显示的列出标识列

怀揣着一点点梦想的年轻人
相信技术和创新的力量
喜欢快速反应的工作节奏

最新文章

  1. Node.js 中MongoDB的基本接口操作
  2. 使用exe4j打包Java程序
  3. sql注入过滤的公共方法
  4. HTML的基本认识
  5. JDBC第一天
  6. SQL加、查、改、删、函数
  7. 关于mtk Android打开串口权限问题
  8. 一个最简单的cell按钮点击回调
  9. PHP操作Memcached的方法汇总
  10. kettle查询-2
  11. python 将汉字转换为拼音
  12. 在Java程序中读写windows共享文件夹
  13. 由“如何取得CPU的温度与型号”学到的知识延伸WQL
  14. BATJ面试必会之并发篇
  15. berkelydb学习
  16. Python 高斯坐标转经纬度算法
  17. 数据字典Data Dict
  18. vue.js和angular.js的区别
  19. c++ 容器学习 理论
  20. iOS TUN之避免UDP包ip分片

热门文章

  1. spark,hadoop集群安装注意
  2. 深度Linux /etc/profile 环境变量生效问题
  3. 4、http协议之二
  4. [洛谷 P4556] 雨天的尾巴
  5. 0915 N校联考
  6. fluent meshing导入二维网格
  7. leetcode 467. 环绕字符串中唯一的子字符串
  8. 一段js MD5。加密 转换C#语法过程
  9. BurpSuite intuder里保存所有网页的特定内容:以bugku的cookies欺骗为例题
  10. session设置存活时间的三种方式