Rog*_*oid 0 sql database sql-server primary-key
我的问题是我想运行一个查询来检查我使用的数据是否与数据库中已有的数据重复,例如我有一个产品代码,并希望停止多次列出相同的项目,这产品代码是主键.
我可以避免这样做:
SELECT ProductCode FROM tblProducts WHERE ProductCode = '12345'
Run Code Online (Sandbox Code Playgroud)
然后检查任何返回的记录,或者是否有更优雅的解决方案,我不介意使用这种方法,但它看起来很笨拙.这只是对我的代码的一些额外验证,因为产品的插入应该只发生一次 - 但我想要对此进行错误检查,因为由于刷新或使用后退按钮(基于Web的系统)而输入了重复项.
不知道这是P = NP型问题还是我在思考这个问题?
我的数据库是MS SQL Server 2000,如果这有帮助.
我建议只是让SQL插入失败并让SQL Server通过主键冲突错误并处理它.SQL Server维护一个索引,他们已经做了多年.我很确定他们的实现将比大多数开发人员好很多倍.如果您正在尝试为此编程,则需要读入所有键并将它们保存在某个索引中.SQL Server已经这样做了.因此,您需要进行双重检查,并将所需空间增加一倍.
如果由于某些原因导致与数据库的连接速度很慢,我唯一会考虑这样做.
否则让SQL Server做它的好处,你做其余的:)
| 归档时间: |
|
| 查看次数: |
597 次 |
| 最近记录: |