⑴ 求sqlserver2005高人解决。。。
外键约束操作如下
create table a(id int primary key,name char(6) not null);
create table b(id int foreign key references a(id));
你的货号为整数类型,不能显示为001,应该设置为字符型,就可以了,但是你要想数据可以加减的话,在操作中就要使用数据类型转换了。
⑵ sqlserver2005一张表怎么建多个外键
ALTER TABLE 表
ADD CONSTRAINT 约束名字
FOREIGN KEY (表的字段) REFERENCES 另外一个表;
例如:
ALTER TABLE test_sub ADD CONSTRAINT main_id_cons FOREIGN KEY (main_id) REFERENCES test_main;
建多个外键, 就不同的字段,多指向几个表就行。
⑶ 在SQLserver里的表里添加外键(不是通过语句),怎么设置为不能为空
不知道你这个 允许为空的建外键 是什么意思.
不知道是不是指:
-- 创建外键(使用 ON DELETE SET NULL 选项,删除主表的时候,同时将子表的 main_id 设置为 NULL)
ALTER TABLE test_sub
ADD CONSTRAINT main_id_cons
FOREIGN KEY (main_id) REFERENCES test_main ON DELETE SET NULL;
⑷ 在数据库(sqlserver2005)中有两张表,其中一张表中有外键,我要向另一张表中插入数据,怎么弄呀
首先要保证外键里的数据在主表中有值,就是说你如果要在外键表中插入值,就必须确保主键表中的那个外键字段中有那个值。举个例子:假设tb_bookCatalog表(图书类别表)是主表,主键是bookCatalogID,外键是bookID,tb_book(图书表)表是外键表,此表的主键是bookID(就是tb_bookCatalog表的外键)。那么只有tb_bookCatalog表(图书类别表)的bookID里有数据了,tb_book(图书表)表如果的主键的数据就只能是tb_bookCatalog表(图书类别表)的bookID里的那些数据。如果不是,就会包主外键错误。
⑸ sqlserver2005中如何查看某一表跟哪张表有主外键关系 可以看到就行
1简单的方法看“数据库关系图”
2从系统表
select fk.*
,obj.name --外键名
,obj2.name --外键表
,obj3.name --主键表
from sysforeignkeys fk inner join sysobjects obj on fk.constid=obj.id
inner join sysobjects obj2 on fk.fkeyid = obj2.id
inner join sysobjects obj3 on fk.rkeyid = obj3.id
order by obj2.name
⑹ SQLSERVER外键约束
当然了,外键就是为了保证数据库的参照完整性的,如果外键表插入的数据没有在主表有相应的主键存在,是不可能成功的。
⑺ 在SQLSERVER2005中添加外键(不是用SQL语句,用的界面操作),提示错误 ALTER TABLE语句与FOREIGN KEY约束
是添加的外键数据格式不一样吗?外键的数据格式一定要相同的。
⑻ sqlserver2005数据库 给表自增列如何创建带标识的自增ID
用计算列或用函数或触发器
如:
Create table test(ID int identity(1,1),Code as 'BH'+right(1000000+ID,5),Cid int)
⑼ sqlserver2005如何建立外键
我不太记得了,好象关键字是extern,在定义和调用时要在键名的前面用extern声明,建议你去查查有关数据库的书,应该会讲得很清楚
⑽ mysql语句转换为sqlserver2005语句
SQL Server 的语法如下:
ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT }
指定如果已创建表中的行具有引用关系,并且被引用行已从父表中删除,则对这些行采取的操作。默认值为 NO ACTION。
NO ACTION
数据库引擎将引发错误,并回滚对父表中行的删除操作。
CASCADE
如果从父表中删除一行,则将从引用表中删除相应行。
SET NULL
如果父表中对应的行被删除,则组成外键的所有值都将设置为 NULL。若要执行此约束,外键列必须可为空值。
SET DEFAULT
如果父表中对应的行被删除,则组成外键的所有值都将设置为默认值。若要执行此约束,所有外键列都必须有默认定义。如果某个列可为空值,并且未设置显式的默认值,则将使用 NULL 作为该列的隐式默认值。
MySQL 里面的 on delete restrict
切换到 SQL Server , 可以切换为 ON DELETE NO ACTION
也可以不写,因为 默认值为 NO ACTION。