我有15个存储过程,这些存储过程从公用表返回数据,然后将该表与特定表连接以检索清单。
例:
Common: tblCommon Specific: tblSpecific 有什么办法可以将名称“ tblSpecific”作为变量传递到单个存储过程中,如下所示?
SELECT .... FROM tblCommon c INNER JOIN @TABLE s on c.primaryKey = s.foreignKey
问题来源于stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
执行此操作的方法是通过sp_executesql()存储过程运行的动态生成的SQL。
通常,您将所需的表名传递给主过程,构建要执行的SQL的ncharvar字符串,然后将其传递给sp_executesql。
Dynamic SQL的诅咒和祝福是关于我描述所有ins和outs的最佳页面。
最大的陷阱之一是,如果您使用动态SQL,则调用存储过程的用户不仅必须具有对该过程的执行权限,而且还必须具有访问基础表的权限。我提供的链接还描述了如何解决该问题。