
--楼主加主键 我们一般主键和表信息不写在一起
SELECT
表名 = CASE WHEN ACOLORDER=1 THEN DNAME ELSE '' END,
表说明 = CASE WHEN ACOLORDER=1 THEN ISNULL(FVALUE,'') ELSE '' END,
字段序号 = ACOLORDER,
字段名 = ANAME,
标识 = CASE WHEN COLUMNPROPERTY( AID,ANAME,'ISIDENTITY')=1 THEN '√'ELSE '' END,
主键 = CASE WHEN EXISTS(SELECT 1 FROM SYSOBJECTS WHERE XTYPE='PK' AND PARENT_OBJ=AID AND NAME IN (
SELECT NAME FROM SYSINDEXES WHERE INDID IN(
SELECT INDID FROM SYSINDEXKEYS WHERE ID = AID AND COLID=ACOLID))) THEN '√' ELSE '' END,
类型 = BNAME,
占用字节数 = ALENGTH,
长度 = COLUMNPROPERTY(AID,ANAME,'PRECISION'),
小数位数 = ISNULL(COLUMNPROPERTY(AID,ANAME,'SCALE'),0),
允许空 = CASE WHEN AISNULLABLE=1 THEN '√'ELSE '' END,
默认值 = ISNULL(ETEXT,''),
字段说明 = ISNULL(G[VALUE],''),
主键= CASE WHEN EXISTS(SELECT 1 FROM SYSOBJECTS WHERE XTYPE='PK' AND PARENT_OBJ=AID AND NAME IN (
SELECT NAME FROM SYSINDEXES WHERE INDID IN(
SELECT INDID FROM SYSINDEXKEYS WHERE ID = AID AND COLID=ACOLID))) THEN hname ELSE '' END
FROM SYSCOLUMNS A LEFT JOIN SYSTYPES B ON AXUSERTYPE=BXUSERTYPE
INNER JOIN SYSOBJECTS D ON AID=DID AND DXTYPE='U' AND DNAME<>'DTPROPERTIES'
LEFT JOIN SYSCOMMENTS E ON ACDEFAULT=EID
LEFT JOIN sysextended_properties G ON AID=Gmajor_id AND ACOLID=Gminor_id
LEFT JOIN sysextended_properties F ON DID=Fmajor_id AND Fminor_id=0
left join SYSOBJECTS h on did=hparent_obj and hxtype='pk'
ORDER BY AID,ACOLORDER
--主外键对应关系
SELECT fkname AS fkname, ftablename AS ftablename, cnname AS fkcol,
rtablename AS rtablename, rtname AS rtcol
FROM sysforeignkeys INNER JOIN
sysobjects fk ON sysforeignkeysconstid = fkid INNER JOIN
sysobjects ftable ON sysforeignkeysfkeyid = ftableid INNER JOIN
sysobjects rtable ON sysforeignkeysrkeyid = rtableid INNER JOIN
syscolumns cn ON sysforeignkeysfkey = cncolid AND
sysforeignkeysfkeyid = cnid INNER JOIN
syscolumns rt ON sysforeignkeysrkeyid = rtid AND
sysforeignkeysrkey = rtcolid
--这些含金量蛮高的哦 楼主上面的脚本写的很好 下面的脚本希望能帮到你
tb_id int//主键
tb_name_before varchar//上传时候的名字,便与下载让他名字恢复
tb_name_now str2 varchar//上传的时候重命名的,防与其他文件重名,一般用日期加时间表示
tb_address str3 varchar//服务器路径
tb_date dates varchar//上传日期
tb_type int//文件类型,itb_type=1表示音乐,2表示,3表示视频
这样一个表把东西结合起来, *** 作起来也方便了
(如果你的数据太多了,不建议这么用,放一块太多,影响速度,文件不多的话,这样很爽的)
Contract表为子表,Company表为主表
子表,父表的定义:拥有外键的表是子表(此处你是给Contract添加外键的,所以Contract表是子表)。主键被其它表引用的表是父表(此处你将外键指向的是Company的主键CompanyID,所以Company表为主表)。
父表的标识被子表中的记录引用,所以叫父表。
拥有外键关系,并且可以随便删除数据,不影响其它表的数据的那个表叫子表。
楼主上述问题,可以看看是否有其他表将外键指向了Contract表(即Contract表是否是其他表的主表)。
主键是对表的约束,保证数据的唯一性!
外键是建立表于表之间的联系,方便程序的编写!
主键和外键是把多个表组织为一个有效的关系数据库的粘合剂。主键和外键的设计对物理数据库的性能和可用性都有着决定性的影响。
必须将数据库模式从理论上的逻辑设计转换为实际的物理设计。而主键和外键的结构是这个设计过程的症结所在。一旦将所设计的数据库用于了生产环境,就很难对这些键进行修改,所以在开发阶段就设计好主键和外键就是非常必要和值得的。
希望能帮你 呵呵
以上就是关于查询数据库的主键、和外键全部的内容,包括:查询数据库的主键、和外键、视频、音乐、图片放到数据库中,怎么设计表结构不考虑存储原始数据 希望给个合理的存储结构、数据库 主键 外键问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)