使用来自程序的查询或使用存储过程在数据库中插入/更新/删除数据

时间:2013-05-18 04:40:30

标签: sql sql-server

我想问一下哪种更好的方法是将数据插入/更新/删除到数据库中,直接从数据层使用查询或为每次插入和删除创建存储过程?

2 个答案:

答案 0 :(得分:1)

您的问题取决于完全您所谈论的查询类型。

  • 对于没有需要遵循的数据库方规则的单个表上的简单CRUD操作,直接SELECTUPDATEDELETE语句都可以。

  • 对于更复杂的操作,例如当数据库应用规范化并访问多个表时,存储过程是值得的。 (事实上​​,“只有当它们值得额外工作时才使用存储过程”是一个很好的规则。)

  • 对于单个查询调用中多行的简单CRUD,除非您想要使用XML,否则程序查询是唯一的方法。

  • (对于您将要使用记录集感知界面的简单CRUD,要么应该正常工作。)

答案 1 :(得分: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选择”,“软删除”,“硬删除”等...