是否可以运行存储过程来在update语句中设置值 - TSQL

Vin*_*ith 4 sql t-sql sql-server sql-server-2008

我想知道是否可以在TSQL的更新语句中执行存储过程.

我想执行一个存储过程,它将CategoryID为数字表设置,从更新语句当前所在的行传入数字.

所以类似于:

UPDATE [TelephoneNumberManagement].[dbo].[Number]
SET [CategoryID] = exec goldennumbers2 [Number];
Run Code Online (Sandbox Code Playgroud)

Yuc*_*uck 8

没有.

如果它是一个函数你可以这样做:

UPDATE [TelephoneNumberManagement].[dbo].[Number]
SET [CategoryID] = goldennumbers2([Number]);
Run Code Online (Sandbox Code Playgroud)

请记住,功能不能有副作用.如果您尝试在该过程中运行一堆DML语句,您应该:

  • A)如果您在其他表中具有需要与Number表保持同步的依赖项,请使用触发器.即便如此,你可能想......
  • B)重新思考你的设计.这就像尝试混合基于集合和迭代编程实践一样.几乎可以肯定有更纯粹的解决方案.