Sql server 用于在Sql Server中更新列的存储过程

Sql server 用于在Sql Server中更新列的存储过程,sql-server,stored-procedures,Sql Server,Stored Procedures,我需要用多个值更新列。查询如下所示 Update table1 set column1 = ( select value from table2 where table1.column0 = table2.coulmn ) 对于上述要求,是否有任何通用存储过程?除了将语句创建为字符串并使用execute语句之外,我还不知道有哪种存储过程。一般来说,execute是不受欢迎的,因为它是一个潜在的注入攻击点。除了创建一个作为字符串的语句并使用execute语句之外,我不知道还有什么。通常不赞成

我需要用多个值更新列。查询如下所示

Update table1 set column1 = (
  select value from table2 where table1.column0 = table2.coulmn
)

对于上述要求,是否有任何通用存储过程?

除了将语句创建为字符串并使用execute语句之外,我还不知道有哪种存储过程。一般来说,execute是不受欢迎的,因为它是一个潜在的注入攻击点。

除了创建一个作为字符串的语句并使用execute语句之外,我不知道还有什么。通常不赞成执行,因为它是一个潜在的注入攻击点。

为什么要用另一个表中容易获得的信息更新一个表?看起来您只是在保证每次对camsnav表执行更新、插入或删除时都必须运行此查询。否则,您将如何保持它们的同步

此外,如果不能保证子查询将只返回一行,则使用SQL Server特定的专有更新格式可能更安全:

UPDATE f SET nav = n.nav
FROM camsfolio AS f
INNER JOIN camsnav AS n
ON f.schcode = n.schcode;

为什么要用另一个表中容易获得的信息更新一个表?看起来您只是在保证每次对camsnav表执行更新、插入或删除时都必须运行此查询。否则,您将如何保持它们的同步

此外,如果不能保证子查询将只返回一行,则使用SQL Server特定的专有更新格式可能更安全:

UPDATE f SET nav = n.nav
FROM camsfolio AS f
INNER JOIN camsnav AS n
ON f.schcode = n.schcode;

SQLServer不使用通用存储过程来处理这类事情。您可以自行构建自己的SP,并使用适当的参数化UPDATE语句进行组合。

SQL Server不使用通用存储过程进行此类操作。由您自己构建SP,并使用适当的参数化UPDATE语句组成。

我不明白您的要求,请提供更多信息。让我给出确切的查询更新camsfolio set nav=从camsnav中选择camsnav.nav,其中camsfolio.schcode=camsnav.schcode基本上我希望camsfolio.nav根据schcode进行更新。我不明白你的要求,请提供更多信息。让我给出确切的查询更新camsfolio set nav=从camsnav中选择camsnav.nav,其中camsfolio.schcode=camsnav.schcode基本上我希望camsfolio.nav根据schcode进行更新。