我想问一下,哪种方法是更好的方法来插入/更新/删除数据到数据库,直接从数据层使用查询或为每个插入和删除创建存储过程?使用查询从程序或使用存储过程插入/更新/删除数据库中的数据
1
A
回答
1
对于您正在讨论的查询类型,您的问题取决于完全是。
有关与需要没有数据库端规则的单个表简单的CRUD操作应遵循的,直接
SELECT
,UPDATE
,或DELETE
语句都是精品。对于更复杂的操作,例如当数据库应用规范化并访问多个表时,存储过程值得工作。 (实际上,“仅在需要额外工作时才使用存储过程”是一个很好的规则。)
对于单个查询调用中的多行的简单CRUD,程序查询是唯一的方法除非你想要使用XML。
(以及简单的CRUD在那里你将要使用的记录感知接口,要么应该工作得很好。)
+0
从安全的角度来看也有所不同。在SQL Server中,您可以将'INSERT INTO A'语句放入存储过程,并授予用户在该SP上的EXECUTE权限,在这种情况下,不需要在'A'上的INSERT权限。如果没有INSERT权限,用户将只能使用该SP插入“A”。调用一个任意的'INSERT INTO A ...'将被禁止。 –
0
我总是用一个存储过程来完成简单的CRUD操作
我曾经在一个SP内做过所有的CRUD操作,希望对你有帮助。
对于实例
create proc <procedure name>
(
<parameterName> <datatype>=<default value if any>,
@mode varchar(20)
)
as
begin
if(@mode='Insert')
begin
--your query for insert
end
if(@mode='Update')
begin
--your query for update
end
if(@mode='Delete')
begin
--your query for delete
end
if(@mode='Select')
begin
--your query for Select
end
end
,你可以有更多的“模式”,如“按ID选择”,“软删除”,“硬删除”,等等......
相关问题
- 1. 数据集绑定存储过程更新/插入/删除
- 2. Web API调用存储过程来插入/更新数据库
- 3. 使用存储过程中的数据插入或更新表格
- 4. 使用Callable语句在数据库中插入存储过程
- 5. 插入更新使用SQL Server存储过程删除Datagridview?
- 6. 使用存储过程组件时插入,删除和更新
- 7. 使用内嵌查询将数据插入到SQL Server数据库表中,不允许使用存储过程
- 8. 使用MyBatis中的存储过程在数据库中未插入数据
- 9. 数据库插入和删除存储过程
- 10. 使用存储的程序插入/更新SQL Server数据库的问题
- 11. 使用Java GUI删除数据库或插入数据库
- 12. 使用存储过程插入到数据库
- 13. 使用存储过程在数据库中插入datagridview数据vb.net
- 14. 在Android应用程序中查询/更新数据存储
- 15. 存储过程未更新数据库
- 16. 使用存储过程从数据库检索数据表
- 17. 使用存储过程从数据库获取数据
- 18. 使用新数据更新存储过程中的表
- 19. 如何从iPhone应用程序中的远程数据库中插入,更新或删除
- 20. 使用vb.net从Sql数据库插入,更新和删除数据?
- 21. 如何使用存储过程更新数据库字段表?
- 22. 错误更新时使用数据库存储过程
- 23. 使用存储过程和ADO.NET更新数据库
- 24. 使用MySQL中的存储过程删除数据
- 25. 更新应用程序时,是否使用NSUserDefaults删除了存储的数据?
- 26. 使用存储过程将数据从SQL表插入到Excel
- 27. 使用MERGE删除数据或插入
- 28. JPA存储库:使用本机查询从数据库中删除一行
- 29. 应用程序更新数据删除
- 30. 从数据库使用存储过程计数数据使用内部连接
你可以找到利弊&存储过程的缺点v/s内嵌查询... – Sachin
我认为最好的方法是程序。 –
如果我的要求是动态地创建一些表格,那么我应该为这些表格做些什么? – MYK