我正在寻找有关如何解决这一挑战的一些观点。我有一个变量说@Var1
,其中包含一个SQL语句。
实施例
@Var1 = `SELECT * from another_table WHERE City IS NOT NULL AND Address IS NOT NULL`
当我执行此变量时
EXECUTE sp_executesql @Var1
我得到了所需的结果,城市和地址不包括NULL值。
我希望根据@Var1
的执行结果更新现有表(tbl1):
类似的东西:
UPDATE TABLE tbl1 AS (EXECUTE sp_executesql @Var1)
这样的事情是否可能?或者我可以采取什么方法将@Var1
的结果导入tbl1
?
提前致谢。
答案 0 :(得分:1)
对于为每个步骤添加链接我表示道歉,但他们应该得到信任。
有两个步骤。插入临时表,然后将该临时表中的数据合并到最终表中。
您必须先插入临时表。 INSERT INTO @TABLE EXEC @query with SQL Server 2000
然后你必须将这些数据合并到主表中。 SQL MERGE statement to update data
答案 1 :(得分:0)
试试这个
UPDATE tbl1
SET Column1= b.Column1,
SET Column2= b.Column2,
SET Column3= b.Column3,
FROM tbl1 a
INNER JOIN (
SELECT Column1,Column2,Column3
FROM another_table WHERE City IS NOT NULL AND Address IS NOT NULL ) b ON a.city_Id = b.city_Id