这条语句怎么写?

[复制链接]
查看11 | 回复4 | 2005-10-30 17:05:33 | 显示全部楼层 |阅读模式
A表中的l列A要参考B表中的B列,语句要怎么写啊?
好像应该很简单的,可是我用一下语句:
Alter table A
Add
constraintfk_a_a
foreign key(a)
references b(b)
好像不起作用啊!
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
你的语法没错。不过在建立外键时,有两点要注意的:
1外键所约束的列的数据类型及长度必须与主键所在列的数据类型及长度一致或者可以由sqlserver自动转换。
2如果是修改外键,只能先删除该表的外键,然后再建立一个同名的外键。删除外键用alter table[/COLOR] tablename drop constraint[/COLOR] foreignkeyname。
察看外键信息,用sp_fkeys[/COLOR] tablename。
看看是不是上面说的问题。
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
谢谢你magicangel,问题已经解决,是不是references a(a)中的列a 必须是表a中的primary key才可以建立foreign key关系?
另我还有一个问题:我要拷贝表A中A行数据到表B中,要如何操作,我知道我很菜,所以不要笑我。
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
insert into b select ... from a where ...
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
最初由 hb911 发布
[B]谢谢你magicangel,问题已经解决,是不是references a(a)中的列a 必须是表a中的primary key才可以建立foreign key关系?
另我还有一个问题:我要拷贝表A中A行数据到表B中,要如何操作,我知道我很菜,所以不要笑我。 [/B]

对于外键约束,有两种情况,1与另一张表的主键约束建立联系,2与另一张表的unique约束建立联系。
后面的问题xzh2000兄给出了答案。我有一点补充,对于异库的表名要这样用server_name.database_name.owner_name.table_name --服务器名.数据库名.拥有者名.对象名
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行