首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >单SP与多SP

单SP与多SP
EN

Stack Overflow用户
提问于 2013-09-09 10:47:30
回答 1查看 140关注 0票数 0

我正在开发一个新的SQL 2008 R2数据库。我创建了一些表格和过程。目前,我有两个程序:

  • spInsertUser:在user表中创建一个与批处理关联的用户。
  • spInsertUserBatch:在User表中插入多个用户,所有这些都与相同的批处理相结合。

第二个过程[spInsertUserBatch]实现了一个用户定义的表类型,该表类型包含创建用户所需的所有字段,但显然,它用作参数,允许在一个查询中创建多个用户。

我想知道的是:我应该坚持两个过程,一个以所有字段作为参数,另一个以表作为参数,还是应该去掉[spInsertUser],只使用[spInsertUserBatch],即使在创建单个用户时也是如此?

我喜欢为了维护而取消单用户插入过程的想法(1比2),但我不确定在表值参数以及当使用它们插入单个条目时,是否存在一些我不知道的东西。

单用户插入可能比批处理插入更频繁。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-09 10:53:28

如果您有两个这样的存储过程,那么您似乎需要调用代码中的这两个存储过程。插入单个记录的存储过程显然比需要一个表作为参数的存储过程更容易调用。

我建议用另一个存储过程来实现一个存储过程。如果spInsertBatch一次循环并添加一个记录,则在循环中调用spInsertUser。如果spInsertBatch在单个批处理中执行插入操作,则通过填充表变量并调用spInsertBatch重新实现spInsertUser

通过在一个地方执行实际的插入,您可以在一个地方控制日志记录、数据验证和业务逻辑检查。通过保留两个存储过程,可以简化调用代码的接口。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18696518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档