【问题标题】:SQL Server : IF THEN ELSE in stored procedureSQL Server:存储过程中的 IF THEN ELSE
【发布时间】:2017-11-30 04:03:43
【问题描述】:

我有一个存储过程,我将整数参数传递给 (@truncate)。 我想要的是这个。

if @truncate = 1
then 
   truncate some_table 
   do something else
else 
   do only the "do something else" (before the else) without truncating the table.. 

代码的“做其他事情”部分很长。如何在不重复“做其他事情”代码并使存储过程比需要的时间更长的情况下做到这一点?

【问题讨论】:

  • 你的逻辑工作正常。如果你真的希望它更短,也许你可以为“做其他事情”创建一个不同的存储过程,并在这个存储过程中调用存储过程。

标签: sql-server tsql stored-procedures sql-server-2016


【解决方案1】:

如果我理解正确,您只需要一个IF 来覆盖截断,其他逻辑应该始终执行。所以只需删除ELSE 条件并将该逻辑放在IF 之后。

if @truncate = 1
begin 
    truncate some_table
end

do something else   -- always do this

【讨论】:

  • 我认为如果第一条语句没有执行,OP希望存储过程执行“做其他事情”。
  • @CookieMonster 我不同意。 OP 似乎希望避免重复当前出现在两个地方的大量代码。
  • 啊.. 来自 Aaron 的编辑.. 这是一种享受.. 我只是看不到它.. 谢谢
猜你喜欢
  • 1970-01-01
  • 2011-10-08
  • 1970-01-01
  • 1970-01-01
  • 2012-08-08
  • 2010-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多