我有两个表A和B
在A和B中有两个相同的字段C1和C2,现在我想把B表中的C2
的所有值更新到A表中的C2中去,以C1为识别条件,这条语句应该
怎样写呢?小弟初识SQLSERVER还请帮忙,谢谢!
---------------------------------------------------------------
不要在企业管理器中打开表A/B表
还有,你确定你的表名字段名正确吗,还有,当前数据库是你数据表所在的数据库吗,呵呵:)
--------参见如下错误的帮助
错误 107
严重级别 15
消息正文
列前缀 ''%1!'' 与查询中所用的表名或别名不匹配。
解释
指定了未对应于查询中指定的任何表名的列前缀。将列前缀与 FROM 子句中的表名和别名相匹配。
该错误的一个常见起因是当提供了表的别名时使用表名。当使用表别名(ANSI 术语中的相关名称)时,Microsoft® SQL Server™ 中的语法检查遵照 ANSI 规范。ANSI 指出
A
1<table name=""> ... is exposed ... if and only if the <table reference="">
2does not specify a <correlation name="">.
3
4如果已在 FROM 子句中为表名提供了别名,则只可以使用别名来限定表中的列;表名不能在语句中的其它任何位置使用,否则将被标记为语法错误。
5
6作为行为上的区别的例子,假定已执行以下脚本:
7
8USE Northwind
9GO
10SELECT Customers.ContactName
11FROM Customers cu
12WHERE ContactName LIKE 'C%'
13GO
14SELECT cu.ContactName
15FROM Customers cu
16WHERE Customers.ContactName LIKE 'C%'
17GO
18
19在两个 SELECT 语句中,注意尽管已提供表别名 cu 来代替表名,但还是使用了 Customers 来限定列 ContactName。这两个查询都返回以下错误信息:
20
21服务器:错误信息 107,级别 16,状态 3
22
23列前缀 ''Customers'' 与查询中所用的表名或别名不匹配。
24
25对策
26使用对应于表的表现名称的列前缀。
27
28重写使用表名限定列名的所有查询。改为使用表别名。例如,以下 SELECT 语句等同于上面的语句,并使用表别名限定列:
29
30USE Northwind
31GO
32SELECT cu.ContactName
33FROM Customers cu
34WHERE cu.ContactName LIKE 'C%'
35GO
36
37
38\---------------------------------------------------------------
39
40update a
41set A.c2=b.c2
42from table1 A left join table2 b on A.c1=B.c1</correlation></table></table>