sql - 是否可以运行存储过程来设置更新语句中的值 - SQL

标签 sql sql-server tsql sql-server-2008

我想知道是否可以在 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/

相关文章:

sql - 根据一列删除 Select 查询中的重复项

MySQL触发器未编译和逻辑

mysql - 根据行有条件地对列中的值求和

sql - Oracle 10g float 格式

php - 如何使用 sql server 和 php 处理印地语字体?

asp.net - 本地主机找不到存储过程 'dbo.aspnet_CheckSchemaVersion'

sql - 在 SQL 触发器中使用等号时遇到问题

SQL 选择列中的不同值/列中的动态值计数

sql-server-2005 - 对一个月的记录数进行汇总和分组

sql - 选择具有特定逻辑的语句