Sql Column没有值

时间:2012-06-05 20:10:35

标签: sql alter-table

我有一个sql表,我试图从另一个表添加一个列。只有当我执行alter table查询时,它才会从表中提取值以匹配我尝试建立连接的列。

例如,我有表1中的A列和表2中的A列,它们应该重合。 ColumnATable1是标识号,ColumnATable2是描述。

我尝试了这个,但收到了错误......

alter table dbo.CommittedTbl
add V_VendorName nvarchar(200)
where v_venkey = v_vendorno

它告诉我语法不正确......任何人都知道如何完成此操作?

5 个答案:

答案 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语句,而INSERTUPDATE是DML语句。

这两个人真的不能像你一样混在一起。

您应该ALTER您的表格添加列,然后INSERTUPDATE列以包含相应的数据。

答案 4 :(得分:0)

您是否可能需要JOIN查询?如果要连接两个表或两个表的一部分,则应使用JOIN。

如果您需要了解更多LINK

,请查看此内容 希望有所帮助!