求助:如何在程序中确定哪些字段是主键? 在坐一个数据库的内容转移时,发现在转移时需要通过程序来检测哪能个字段是某个表的主键,由于表的名称/数据库的名称全部是由参数提供的,所以需要由程序内部判断哪能个(些)字段是主键。请各位大侠不吝赐教。小的在这里先谢谢了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select * from syscolumns where id=object_id('tablename') and isnullable=0 --列出表里的所有的关键字 //列出数据库里所有的表名select name from sysobjects where type='U' sp_pkeys返回当前环境中单个表的主键信息。语法sp_pkeys [ @table_name = ] 'name' [ , [ @table_owner = ] 'owner' ] [ , [ @table_qualifier = ] 'qualifier' ]参数[@table_name =] 'name'是要返回其信息的表。name 为 sysname 类型,无默认值。不支持通配符模式匹配。[@table_owner =] 'owner'表示指定表的所有者。owner 为 sysname 类型,其默认值为 NULL。不支持通配符模式匹配。如果未指定 owner,则应用基础 DBMS 的默认表可视性规则。在 Microsoft® SQL Server™ 中,如果当前用户拥有的表具有指定名称,则返回该表的列。如果未指定 owner,且当前用户未拥有指定 name 的表,则该过程查找由数据库所有者拥有的具有指定 name 的表。如果有,则返回该表的列。[@table_qualifier =] 'qualifier'是表限定符。qualifier 为 sysname 类型,其默认值为 NULL。多种 DBMS 产品支持表的三部分命名方式 (qualifier.owner.name)。在 SQL Server 中,该列表示数据库名。在某些产品中,该列表示表所在数据库环境的服务器名。 你也可以直接在syscolumns表中select或者用properties函数,不过上面的最简单:) 屏幕截取时,GDI设备描述表的一个问题。 数组问题 超级菜鸟问题 懂的进 请教:PrintDBGridEh打印中的网格线能不能去掉!在线等! m_SizeRec、MaxDataRow的报错? delphi如何做服务以及安装 在FastReport 2.5中分组时,能不能让页码重新从1开始计? 谁知道IBO40XRT_D5.dpk是什么?能不能给各地址下载,谢谢 各位大虾! 快来呀! 要送分了!! 打印票据。 我在SQLServer2000中为表建的索引为何在ADODataSet中的indexName中看不出来? 关于分辨率和窗口最大化问题 删除文件夹用什么函数?
--列出表里的所有的关键字
select name from sysobjects where type='U'
返回当前环境中单个表的主键信息。语法
sp_pkeys [ @table_name = ] 'name'
[ , [ @table_owner = ] 'owner' ]
[ , [ @table_qualifier = ] 'qualifier' ]参数
[@table_name =] 'name'是要返回其信息的表。name 为 sysname 类型,无默认值。不支持通配符模式匹配。[@table_owner =] 'owner'表示指定表的所有者。owner 为 sysname 类型,其默认值为 NULL。不支持通配符模式匹配。如果未指定 owner,则应用基础 DBMS 的默认表可视性规则。在 Microsoft® SQL Server™ 中,如果当前用户拥有的表具有指定名称,则返回该表的列。如果未指定 owner,且当前用户未拥有指定 name 的表,则该过程查找由数据库所有者拥有的具有指定 name 的表。如果有,则返回该表的列。[@table_qualifier =] 'qualifier'是表限定符。qualifier 为 sysname 类型,其默认值为 NULL。多种 DBMS 产品支持表的三部分命名方式 (qualifier.owner.name)。在 SQL Server 中,该列表示数据库名。在某些产品中,该列表示表所在数据库环境的服务器名。