首页 > 解决方案 > 根据执行变量的结果更新现有表

问题描述

我正在寻找有关如何解决这一挑战的一些意见。我有一个变量 say @Var1,其中包含一条 SQL 语句。

例子

@Var1 = `SELECT * from another_table WHERE City IS NOT NULL AND Address IS NOT NULL`

当我执行这个变量

EXECUTE sp_executesql @Var1

我得到了想要的结果,城市和地址不包括 NULL 值。

我希望根据以下执行结果更新现有表(tbl1)@Var1

就像是:

UPDATE TABLE tbl1 AS (EXECUTE sp_executesql @Var1)

这样的事情甚至可能吗?或者我可以采取什么方法来获得@Var1into的结果tbl1

提前致谢。

标签: sql-serversql-server-2008

解决方案


我很抱歉为每个步骤都包含链接,但他们值得称赞。

有2个步骤。插入临时表,然后将该临时表中的数据合并到最终表中。

您必须先插入临时表。 使用 SQL Server 2000 插入 @TABLE EXEC @query

然后你必须将该数据合并到你的主表中。 SQL MERGE 语句更新数据


推荐阅读