SET IDENTITY_INSERT的用法,具体去体验一下
如果将值插入到表的标识列中,需要启用 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
可以知道如果对标识列进行插入,那么需要显示的列出标识列
怀揣着一点点梦想的年轻人
相信技术和创新的力量
喜欢快速反应的工作节奏
相信技术和创新的力量
喜欢快速反应的工作节奏
分类:
MS SQL
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
2014-09-11 使用httpwebrequest Post数据到网站