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

080226

TAG: update

引用 删除 Guest   /   2008-09-11 16:42:56
5
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-10-12  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 917
  • 日志数: 25
  • 文件数: 1
  • 书签数: 18
  • 建立时间: 2008-01-08
  • 更新时间: 2008-09-11

RSS订阅

Open Toolbar