我有一个sql表,我试图从另一个表添加一个列。只有当我执行alter table查询时,它才会从表中提取值以匹配我尝试建立连接的列。
例如,我有表1中的A列和表2中的A列,它们应该重合。 ColumnATable1是标识号,ColumnATable2是描述。
我尝试了这个,但收到了错误......
alter table dbo.CommittedTbl
add V_VendorName nvarchar(200)
where v_venkey = v_vendorno
它告诉我语法不正确......任何人都知道如何完成此操作?
答案 0 :(得分:2)
alter table dbo.CommittedTbl
add V_VendorName nvarchar(200);
go
update c
set c.V_VendorName = a.V_VendorName
from CommittedTbl c
join TableA a
on c.v_venkey = a.v_vendorno;
go
我只是在猜测你的结构。
答案 1 :(得分:1)
alter table 2 add column A <some_type>;
update table2 set column A = (select column_A from table2 where v_venkey = v_vendorno);
您对表格和列的名称有点令人困惑,但我认为应该这样做。
答案 2 :(得分:1)
ALTER TABLE语句没有WHERE子句。您需要添加列(前两行),然后根据您在两个表之间定义的关系插入行。
ALTER TABLE语法: http://msdn.microsoft.com/en-us/library/ms190273%28v=sql.90%29.aspx
答案 3 :(得分:1)
SQL中有几种语言:
DDL:数据定义语言 - 它定义了模式(表,列,数据类型的结构) - 向表中添加列会影响表定义,并且所有行都将具有该新列(而不仅仅是某些行根据标准)
DML:数据操作语言 - 这会影响表中的数据,插入,更新或其他更改都属于此,您可以根据条件更新某些数据(这是WHERE
子句所在的位置)
ALTER
是一个DDL语句,而INSERT
和UPDATE
是DML语句。
这两个人真的不能像你一样混在一起。
您应该ALTER
您的表格添加列,然后INSERT
或UPDATE
列以包含相应的数据。
答案 4 :(得分:0)
您是否可能需要JOIN查询?如果要连接两个表或两个表的一部分,则应使用JOIN。
如果您需要了解更多LINK
,请查看此内容 希望有所帮助!