Sql server 2008 如何用另一个表中的另一列替换数据列?

Sql server 2008 如何用另一个表中的另一列替换数据列?,sql-server-2008,sql-update,Sql Server 2008,Sql Update,我有两个表,tbl1(col1,col2,col3),tbl2(col1)。我需要用tbl2.col1中的数据替换tbl1.col1中的数据。我的问题是没有公共字段来连接这两个表。是否可以编写查询来执行更新?这应该可以。我不确定您有什么样的数据,但无法链接表2和表1: WITH T1 AS ( SELECT RN = ROW_NUMBER() OVER (ORDER BY NULL) ,Col1 FROM Tbl1 ) ,T2 AS (

我有两个表,tbl1(col1,col2,col3),tbl2(col1)。我需要用tbl2.col1中的数据替换tbl1.col1中的数据。我的问题是没有公共字段来连接这两个表。是否可以编写查询来执行更新?

这应该可以。我不确定您有什么样的数据,但无法链接表2和表1:

WITH T1 AS
(
    SELECT
       RN = ROW_NUMBER() OVER (ORDER BY NULL)
       ,Col1
    FROM
       Tbl1

)
,T2 AS
(
   SELECT
       RN = ROW_NUMBER() OVER (ORDER BY NULL)
       ,Col1
    FROM
       Tbl2

)

UPDATE
    T1
SET
    Col1 = T2.col1
FROM 
    T1
INNER JOIN
    T2
       ON T1.RN = T2.RN