SQL Server中的标识列和ACCESS中的“自动编号”相似,都是插入记录的时候自动生成,一般不允许也不需要我们去手动修改它。如果我们在标识列中插入值,例如:
insert member(id,username) values(10,'admin')
则在查询分析器里面会返回错误信息:
引用内容
服务器: 消息 544,级别 16,状态 1,行 1
当 IDENTITY_Insert 设置为 OFF 时,不能向表 'member' 中的标识列插入显式值。
而在ASP程序中会返回错误信息:
引用内容
Microsoft OLE DB Provider for SQL Server 错误 '80040e14'
当 IDENTITY_Insert 设置为 OFF 时,不能向表 'member' 中的标识列插入显式值。
test.asp,行 13
但有的情况我们需要手动插入标识列的值,例如删除了一些记录后,标识列并不连续,而我们又想把它补齐。我们利用一个开关可以让愿望变成现实:
SET IDENTITY_Insert [TableName] ON
在查询分析器里面这样写:
SET IDENTITY_Insert member ON
insert member(id,username) values(1,'admin')
SET IDENTITY_Insert member OFF
在ASP页面可以这样写:
con.execute("SET IDENTITY_Insert member ON" & vbcrlf & "insert member(id,username) values(2,'abcde')" & vbcrlf & "SET IDENTITY_Insert member OFF")
使用该方法应该保证标识列没有插入重复数据,要不然会返回错误,插入操作不会进行。SET IDENTITY_Insert [TableName] OFF 其实可以省略,因为会话完毕后,这个开关就自动关上了。
本文来自: 脚本之家(www.jb51.net) 详细出处参考:http://www.jb51.net/article/6781.htm
分享到:
相关推荐
查看 SQL Server 数据库连接数的多种方法 SQL Server 数据库连接数是一个重要的性能指标,它可以帮助数据库管理员了解当前数据库的工作负载和性能。查看数据库连接数有多种方法,本文将介绍四种不同的方法来查看 ...
1. **数据库、表和字段的字符集不一致**:如果数据库、表或字段的字符集设置不一致,则可能会导致中文字符在插入数据库时出现问题。 2. **应用程序和数据库之间的字符集不匹配**:如果应用程序和数据库之间的字符集...
在设备创建过程中,你需要指定数据类型,例如数值、字符串或布尔值,这些数据类型应该与SQL Server中的列类型相对应。然后,在表中选择要读取的特定列,这些列将成为OPC标签,可以在OPC客户端应用程序中访问。完成...
在SQL Server数据库管理中,备份和恢复是两个至关重要的操作,它们确保了数据的安全性和可恢复性。在本文中,我们将深入探讨如何使用C#语言来实现这些功能。C#结合SQL Server的API,如SqlClient和Smo,可以方便地...
Sql Server 数据库超时问题是指在使用 Sql Server 数据库时,出现的等待响应时间过长或超时的问题。这种问题可能会导致数据库连接中止、查询失败等问题。 一、Sql Server 等待响应时间 Sql Server 等待响应时间是...
SQL Server数据库查看器是一款专为SQL Server设计的强大而便捷的数据库管理工具,它提供了一种直观的方式来浏览、管理和操作数据库中的数据。对于SQL Server初学者和经验丰富的DBA(数据库管理员)来说,这款软件都...
1.SQL Server 2014简介.mp4 10.SQL Server 2014定义表主键、外键.mp4 11.SQL Server 2014新增表记录.mp4 12.SQL Server 2014查询表记录.mp4 13.SQL Server 2014修改表记录.mp4 14.SQL Server 2014删除表记录....
当需要在C++程序中与SQL Server数据库交互时,通常会采用ActiveX Data Objects(简称ADO)技术。以下将详细讲解如何使用C++通过ADO连接到SQL Server数据库,并基于提供的"ConnDatabase"源代码进行学习。 1. ADO简介...
酒店管理系统,连接SQLServer 数据库 C++/Qt酒店管理系统,连接SQLServer 数据库 C++/Qt酒店管理系统,连接SQLServer 数据库 C++/Qt酒店管理系统,连接SQLServer 数据库 C++/Qt酒店管理系统,连接SQLServer 数据库 ...
"使用 SQL Server 数据库中查询累计值的方法" SQL Server 是一个功能强大且广泛使用的关系数据库管理系统,通过它可以对数据进行高效的存储、管理和查询。在实际应用中,我们经常需要对数据进行累计计算,例如银行...
此外,在使用 Navicat Premium 连接 SQL Server 数据库时,用户需要注意 SQL Server 数据库的版本问题。不同的 SQL Server 数据库版本可能具有不同的连接方式和要求,用户需要根据自己的 SQL Server 数据库版本选择...
JS访问SQL Server数据库代码 这是我自己的代码,能用不就不用说了
在.NET开发环境中,C#与SQL Server数据库的交互是常见的任务。这个压缩包"**C# SQL Server数据库操作DLL**"提供了一种便捷的方式,通过一个动态链接库(DLL)来处理这些操作,免去了手动编写大量基础数据库访问代码...
基于Java和SQL Server数据库的简易图书馆管理系统,优秀数据库课设! 基于Java和SQL Server数据库的简易图书馆管理系统,优秀数据库课设! 基于Java和SQL Server数据库的简易图书馆管理系统,优秀数据库课设! 基于...
总的来说,当需要为SQL Server的标识列插入特定值时,我们需要先开启`IDENTITY_INSERT`,在插入操作完成后记得关闭它。这是一个在特定场景下进行数据操作的重要技巧,尤其在数据迁移或复制时非常有用。但要注意,不...
4. 数据库脚本:sqlserver数据库脚本是一种用于创建和管理数据库的脚本语言,例如可以使用sqlserver.sql文件来创建数据库结构和插入初始数据。 5. 数据库安全:为了保护数据库的安全,需要对数据库进行权限设置、...
SQL Server 数据库巡检知识点 通过对 SQL Server 数据库巡检的重要性,我们可以了解到数据库的健康状态和安全性。以下是数据库巡检的知识点: 一、数据库巡检报告 * 数据库巡检报告是对数据库当前状态的总结,...
自动化 wincc连接sql server数据库脚本,不需要wincc授权,直连sql server数据库。解决归档导出问题
`SET IDENTITY_INSERT`允许我们在插入数据时显式地为标识列指定一个具体的值。这在需要控制数据插入顺序或需要在标识列中插入非连续值时非常有用。例如,如果需要在表中插入一条记录,并且希望这条记录的标识列值为...