sp_help tablename,这是全部的信息。你指的是主键吗?up。

解决方案 »

  1.   

    是指主键,问题是我是通过ODBC同异地数据库(Microsoft SQL Server 2000)关联的,用上述方法(存储过程)不支持!
      

  2.   

    select b.name from sysindexes a,syscolumns b,syscolumns c
    where a.id = object_id('tablename') and a.status & 0x800 = 0x800 and b.id = a.id and b.name = index_col('tablename',a.indid,c.colid) and c.id = a.id and c.colid <= a.keycnt
      

  3.   

    楼上朋友bluepower2008(蓝色力量)的方法在我用Microsoft SQL Server与异地数据库(Microsoft SQL Server 2000)相连接时是正确的(我本地是客户端),返回了数据表所有主键名称.可是,如果本地通过ODBC同异地数据库进行连接,结果不知怎么是变成了空列,好像返回记录数倒是正确的,不知是ODBC数据源的设置问题,还是ODBC本身不支持.请兄弟指教!
      

  4.   

    我是通过ODBC(驱动程序是SQL Server)同异地数据库(Microsoft SQL Server 2000)关联的,用SQL语句:select * from syscolumns 返回的记录中无'name,这个字段,而通过Microsoft SQL Server 同异地数据库进行连接时,用SQL语句:select * from syscolumns 返回的记录中却有'name,这个字段,不知何故?请高手指教!
      

  5.   

    如果你使用查询分析器运行sql语句可以得出结果集,那说明sql语句没有问题;剩下的问题应该是你的应用程序代码的问题了,你是用的asp吗?还是用的别的程序,取数据库的结果集使用的什么方法,说清楚点,才好给你分析错误,N_chow(一劍飄香)说的没错。我也有同样的要求。
      

  6.   

    我使用的是Delphi5.
    在Delphi自带的SQL Explore 使用 SQL语句"select * from syscolumns "这条简单的语句的.
    如果创建数据库别名时数据库类型用MSSQL,即通过Micrsosoft SQL Server 2000与数据库连接,这时使用SQL语句"select * from syscolumns "返回的结果中包括"name"字段;如果创建数据库别名时数据库类型用SQL Server,即通过ODBC数据源与数据库连接,这时使用SQL语句"select * from syscolumns "返回的结果中就不包括"name"字段,好像返回的记录数倒是相同.你们说奇不奇怪?
    用'sp_pkeys tablename'也出现类似的现象:无'COLUMN_NAME'字段!与本地数据库连接本,结果也是如此!不信吗?我试过好几台机子!!! 我之所以测试用ODBC与异地数据库进行连接是由于ODBC驱动程序是windows(Win2000)系统自带的,不需要额外再用专门的Micrsosoft SQL Server!请楼上的各位兄弟帮忙解决!