我正在开发一个新的SQL 2008 R2数据库。我创建了一些表格和过程。目前,我有两个程序:
第二个过程[spInsertUserBatch]
实现了一个用户定义的表类型,该表类型包含创建用户所需的所有字段,但显然,它用作参数,允许在一个查询中创建多个用户。
我想知道的是:我应该坚持两个过程,一个以所有字段作为参数,另一个以表作为参数,还是应该去掉[spInsertUser]
,只使用[spInsertUserBatch]
,即使在创建单个用户时也是如此?
我喜欢为了维护而取消单用户插入过程的想法(1比2),但我不确定在表值参数以及当使用它们插入单个条目时,是否存在一些我不知道的东西。
单用户插入可能比批处理插入更频繁。
谢谢!
发布于 2013-09-09 10:53:28
如果您有两个这样的存储过程,那么您似乎需要调用代码中的这两个存储过程。插入单个记录的存储过程显然比需要一个表作为参数的存储过程更容易调用。
我建议用另一个存储过程来实现一个存储过程。如果spInsertBatch
一次循环并添加一个记录,则在循环中调用spInsertUser
。如果spInsertBatch
在单个批处理中执行插入操作,则通过填充表变量并调用spInsertBatch
重新实现spInsertUser
。
通过在一个地方执行实际的插入,您可以在一个地方控制日志记录、数据验证和业务逻辑检查。通过保留两个存储过程,可以简化调用代码的接口。
https://stackoverflow.com/questions/18696518
复制相似问题