Touch the future...
依据A表更新B表的例子
上一篇 /
下一篇 2008-02-26 17:50:53
/ 个人分类:SQL Server 2005
/*
如果UPDATE 语句包含了未指定每个更新列的位置只有一个可用值的FROM 子句(换句话说,如果UPDATE 语句是不确定性的),则其结果将不明确。例如,对于下面脚本中的 UPDATE 语句,Table1 中的全部两行都满足UPDATE 语句中 FROM 子句的限定条件;但是,将使用Table1 的哪一行来更新Table2. 中的行是不明确的。
*/
IF OBJECT_ID(
'tempDB..#tbl_tmp_1','U')
IS NOT NULL
DROP TABLE #tbl_tmp_1;
IF OBJECT_ID(
'tempDB..#tbl_tmp_2','U')
IS NOT NULL
DROP TABLE #tbl_tmp_2;
CREATE TABLE #tbl_tmp_1(
[ID]
INT IDENTITY(1,1) NOT
NULL,
[name]
VARCHAR(10) NOT NULL
);
GO
CREATE TABLE #tbl_tmp_2(
[ID]
INT NOT NULL,
[name]
VARCHAR(10) NOT NULL
);
GO
--
INSERT INTO #tbl_tmp_1([name])
VALUES( N'A');
INSERT INTO #tbl_tmp_1([name])
VALUES( N'B');
INSERT INTO #tbl_tmp_1([name])
VALUES( N'C');
--
INSERT INTO #tbl_tmp_2
VALUES( 1, N'AA');
INSERT INTO #tbl_tmp_2
VALUES( 2, N'BB');
INSERT INTO #tbl_tmp_2
VALUES( 3, N'CC');
--
SELECT *
FROM #tbl_tmp_1;
SELECT *
FROM #tbl_tmp_2;
--
UPDATE #tbl_tmp_2
SET #tbl_tmp_2.[name] = #tbl_tmp_2.[name] + N'-' + #tbl_tmp_1.[name]
FROM #tbl_tmp_1 INNER JOIN #tbl_tmp_2
ON( #tbl_tmp_2.[ID] = #tbl_tmp_1.[ID]);
--
SELECT *
FROM #tbl_tmp_2;
--
080226
导入论坛
引用链接
收藏
分享给好友
推荐到圈子
管理
举报
TAG:
update