恩,是的,主要SQL 2005中用SYSCOLUMNS,
总是报:
消息 208,级别 16,状态 1,第 3 行
对象名  'dbo.SYSCOLUMNS' 无效。请大虾指教啊。。急啊。

解决方案 »

  1.   

    在系统数据中SYS.SYSCOLUMNS 可以的,但是在我们用户数据库中就没用了。
      

  2.   

    我在2005试可以:CREATE TABLE TA(ID INT,CLOUNM1 VARCHAR(2),COLUMN2 VARCHAR(2))
    INSERT TA
    SELECT 1, 'aa', 'qq' UNION ALL
    SELECT 2, 'bb', 'ww'CREATE TABLE TB(FieldName VARCHAR(10),chimeseName NVARCHAR(10))
    INSERT TB
    SELECT 'CLOUNM1', N'字段一' UNION ALL
    SELECT 'COLUMN2', N'字段二'DECLARE @SQL VARCHAR(8000)
    SET @SQL=''
    SELECT @SQL=@SQL+','+name+' AS '''+chimeseName+''''
    FROM SYSCOLUMNS JOIN TB ON FieldName=name WHERE ID=OBJECT_ID('TA')SET @SQL='SELECT ID AS ID'+@SQL+' FROM TA'
    --PRINT @SQL
    EXEC(@SQL)DROP TABLE TA
    DROP TABLE TB
    /*
    ID          字段一  字段二  
    ----------- ---- ---- 
    1           aa   qq
    2           bb   ww
    */
      

  3.   

    syscolumns是以sys开头的.不是以dbo开头的.sys.syscolumns 正常
    dbo.syscolumns错误
      

  4.   

    直接用
    select * from SYSCOLUMNS
      

  5.   

    5楼那个在SQL 2000中是可以的,但是在SQL server2005的用户表中就不行了