Microsoft Access 中的 Scope_Identity()
Posted
技术标签:
【中文标题】Microsoft Access 中的 Scope_Identity()【英文标题】:Scope_Identity() in Microsoft Access 【发布时间】:2010-02-09 16:36:42 【问题描述】:我正在 Microsoft Access 中编写一个数据库,以使客户不必购买 SQL Server。 你如何获得我刚刚插入的行的主键?在 SQL Server 中,它是
INSERT INTO TABLE(FIELDLIST) VALUES(VALUELIST)
SELECT * FROM TABLE WHERE PrimaryKeyID = SCOPE_IDENTITY()
【问题讨论】:
【参考方案1】:试试:
选择@@身份
【讨论】:
【参考方案2】:如果是为了钱,请联系SQL Server Express;免费。
如果您正在编写应用程序,您仍然需要 Microsoft Access,但您可以将 SQL Server Express 数据库附加到您的应用程序,并使用 SQL Server Express 数据库作为您的存储介质。
如果应用程序是多用户的,从一开始就使用 SQL Server Express 作为您的后端数据库将使应用程序更加可靠,尤其是如果您缺乏正确使用 Access 作为创建多用户应用程序所需的专业知识一个后端。
多用户应用程序有两个部分:数据库和应用程序前端。数据库将驻留在一台机器上,并由每个应用程序前端共享。应用程序前端将被复制到每个用户的计算机上。
如果您对 Access 开发很认真,请获取 this book。虽然已经过时,但它仍然是 Access 开发的权威性作品。
【讨论】:
这是一个很好的建议。许多托管公司提供 1 个 SQL Server 数据库以及您需要的任意数量的 Microsoft Access 数据库。我正在尝试限制要堆积到 SQL Server 数据库中的表的数量。我得看看有没有免费提供 SQL Server Express 的托管公司。 我们在谈论多少张桌子?表的数量是否在持续增长?如果没有,你的单个 SQL Server 实例应该能够处理你扔给它的任何东西。如果表不断增长(你每天都在添加一个新表吗?),并且表都具有相同的字段,请考虑添加另一个字段来区分表实例(可能是日期字段?)并将所有数据放入到一个表中。【参考方案3】:嗯...这里有很多值得关注的地方。
所有 Access 表都应该有一个自动编号字段作为主键字段 表格中的数据输入应通过绑定表格完成 访问并非旨在在前端和后端文件之间使用 WAN,因此可能无法正常运行。 如果文件大小预计接近或超过 2G、大量同时用户、大量长文本字段或对后端数据库有其他要求,则应使用 SQL Server - 例如向网络服务器提供数据。 Access 是一个前端数据库,因此表几乎完全是被动的。【讨论】:
以上是关于Microsoft Access 中的 Scope_Identity()的主要内容,如果未能解决你的问题,请参考以下文章
Microsoft Access 使用 Access 中的 SQL 查询合并两个 Excel 文件
使用传递查询中的数据更新 Microsoft Access 2013 表
Microsoft Access 2013 - 表数据中的变量