我想知道是否可以在 TSQL 的更新语句中执行存储过程。
我想执行一个存储过程,该存储过程将为数字表设置CategoryID
,并传入更新语句当前所在行的数字。
所以类似:
UPDATE [TelephoneNumberManagement].[dbo].[Number]
SET [CategoryID] = exec goldennumbers2 [Number];
最佳答案
没有。
如果它是一个函数,你可以这样做:
UPDATE [TelephoneNumberManagement].[dbo].[Number]
SET [CategoryID] = goldennumbers2([Number]);
请记住,函数不能有副作用。如果您尝试在该过程中运行一堆 DML 语句,您应该:
- A) 如果您在其他表中存在依赖关系且需要与
Number
表保持同步,请使用触发器。即便如此,您可能想... - B) 重新思考您的设计。这感觉就像尝试混合基于集合的编程实践和迭代编程实践。几乎可以肯定有一个更纯粹的解决方案。
关于sql - 是否可以运行存储过程来设置更新语句中的值 - SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7323264/