我们有一个进程根据传入的参数更新某些表,特别是某个状态。我在组织上知道这个问题可以通过为这个数据使用一个表来消除,但这不是一个选项 - 这不是我的数据库。
要更新这些表,我们运行存储过程。唯一的问题是每个州都有一个存储过程,这使代码更新变得非常糟糕。为了最大限度地减少需要维护的代码量,我们希望转向一个接收状态参数的单个存储过程,并更新正确的表。我们想要没有50个if语句,所以我能想到的唯一方法就是将SQL代码保存为文本,然后执行字符串。 IE:
SET @SSQL = 'UPDATE TBL_' + @STATE +' SET BLAH = FOO'
EXEC @SSQL;
我想知道是否有办法在不使用字符串的情况下根据该参数更新正确的表。这些存储过程长达数千行。
全部谢谢!