我想問一下,哪種方法是更好的方法來插入/更新/刪除數據到數據庫,直接從數據層使用查詢或爲每個插入和刪除創建存儲過程?使用查詢從程序或使用存儲過程插入/更新/刪除數據庫中的數據
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