有两种解决办法

方法一、是我在网上找的:将原来的sysproperties改成sys.extended_properties并且对应关系如下

sys.extended_properties

left join sys.extended_properties g on a.id=g.class and

a.colid=g.minor_id

left join sys.extended_properties f on d.id=f.class and f.minor_id=0

2000的数据库附加不能05的数据库里出了sysproperties不存在

上面就是解决的方法,以后备用。

【sysproperties】表 原来【SQL2000】中的表【sysproperties】在【SQL2005】中已经不存在了,被是表【extended_properties】取代了。  能不出错吗?

微软公司在升级数据库版本的问题,怎么没有考虑到程序员?

微软删除一个sysproperties表,不知道多少个基于【sysproperties】的程序要出问题。

所以基于上面的解决办法,我找到了

第二个方法,相对比较简单

建一个视图:

CREATE VIEW sysproperties

AS

 SELECT class AS id,Minor_id AS sMallid,* from sys.extended_properties

这样以前写的代码 在找不到表的情况下就会用这个视图。

暂时貌似可以解决问题

举一个列子如下:修改后一样可以在2005中运行:

--查询所有用户表所有字段的特征

SELECT D.Name as TableName, A.colorder AS ColOrder, A.name AS Name,  

  COLUMNPROPERTY(A.ID,A.Name, 'IsIdentity') AS IsIdentity,  

  CASE WHEN EXISTS

  (SELECT 1

  FROM dbo.sysobjects

  WHERE Xtype = 'PK' AND Name IN

  (SELECT Name

  FROM sysindexes

  WHERE indid IN

  (SELECT indid

  FROM sysindexkeys

  WHERE ID = A.ID AND colid = A.colid)))  

  THEN 1 ELSE 0 END AS 主键,  

  B.name AS 类型,

  A.length AS [长度],

  A.xprec AS [精度],

  A.xscale AS [小数],

  CASE WHEN A.isnullable = 1 THEN 1 ELSE 0 END AS [可为空],  

ISNULL(E.text, ' ') AS [默认值],  

  ISNULL(G.[value], ' ') AS [说明]

FROM dbo.syscolumns A LEFT OUTER JOIN

  dbo.systypes B ON A.xtype = B.xusertype INNER JOIN

  dbo.sysobjects D ON A.id = D.id AND D.xtype = 'U' AND  

  D.name <> 'dtproperties' LEFT OUTER JOIN

  dbo.syscomments E ON A.cdefault = E.id 

  LEFT OUTER JOIN dbo.sysproperties G ON A.id = G.id AND A.colid = G.smallid

--WHERE D.Name='tablename' --如果找指定表,把注释去掉

ORDER BY 1, 2

上面是 在2000中运行的效果,正确,没问题

下面是利用【sys.extended_properties】的效果,用网上找的方法,可行

--查询所有用户表所有字段的特征

SELECT D.Name as TableName, A.colorder AS ColOrder, A.name AS Name,  

  COLUMNPROPERTY(A.ID,A.Name, 'IsIdentity') AS IsIdentity,  

  CASE WHEN EXISTS

  (SELECT 1

  FROM dbo.sysobjects

  WHERE Xtype = 'PK' AND Name IN

  (SELECT Name

  FROM sysindexes

  WHERE indid IN

  (SELECT indid

  FROM sysindexkeys

  WHERE ID = A.ID AND colid = A.colid)))  

  THEN 1 ELSE 0 END AS 主键,  

  B.name AS 类型,

  A.length AS [长度],

  A.xprec AS [精度],

  A.xscale AS [小数],

  CASE WHEN A.isnullable = 1 THEN 1 ELSE 0 END AS [可为空],  

ISNULL(E.text, ' ') AS [默认值],  

  ISNULL(G.[value], ' ') AS [说明]

FROM dbo.syscolumns A LEFT OUTER JOIN

  dbo.systypes B ON A.xtype = B.xusertype INNER JOIN

  dbo.sysobjects D ON A.id = D.id AND D.xtype = 'U' AND  

  D.name <> 'dtproperties' LEFT OUTER JOIN

  dbo.syscomments E ON A.cdefault = E.id 

left join sys.extended_properties g 

on a.id=g.class and 

a.colid=g.minor_id

left join sys.extended_properties f on d.id=f.class and f.minor_id=0

WHERE D.Name='tablename' --如果找指定表,把注释去掉

ORDER BY 1, 2

另外我在 sql2005中建立视图 :

CREATE VIEW sysproperties

AS

 SELECT class AS id,Minor_id AS sMallid,* from sys.extended_properties

后再执行第一个不经过修改用【sysproperties】的代码也能正常运行。

SQL2000的系统表sysproperties在SQL2005中 无效的 问题的更多相关文章

  1. sql server 2000系统表sysproperties在SQL 2008中无效的问题

    Sqlserver有一个扩展属性系统表sysproperties,因为只接触过MSSQL2005及以后的版本,在生产库2008版本及联机文档上搜了下都找不到这个系统表,后来发现这个系统表在2005版本 ...

  2. SQLSERVER系统视图 sql server系统表详细说明

    参考 https://www.cnblogs.com/luluping/archive/2012/11/05/2754639.html https://www.cnblogs.com/litubin/ ...

  3. oracle/ms sql 系统表

    sql server系统表详细说明 sysaltfiles 主数据库 保存数据库的文件 syscharsets 主数据库字符集与排序顺序 sysconfigures主数据库 配置选项 syscurco ...

  4. sql server2008系统表详细说明sys.开头的表

    一.库里有多少个表,表名等 select * from INFORMATION_SCHEMA.TABLES 二.查询表.字段.类型.是否主键.长度.小数位.是否允许空.默认值等详细查询 效果: SEL ...

  5. MS SQL SERVER 中的系统表

    MS SQL SERVER 中的系统表 序号 名称 说明 备注 1 syscolumns 每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行.   2 syscomments 包含每 ...

  6. DataBase 之 数据库中的系统表

    名称                       地址                                                        说明 sysaltfiles    ...

  7. Sqlserver 中系统表sysobjects、syscolumns以及函数object_id

    1.sysobjects 系统对象表. 保存当前数据库的对象,如约束.默认值.日志.规则.存储过程等 sysobjects 重要字段解释: sysObjects ( Name sysname, --o ...

  8. SQlServer 从系统表 sysobjects 中获取数据库中所有表或存储过程等对象

    [sysobjects] 一.概述 系统对象表. 保存当前数据库的对象,如约束.默认值.日志.规则.存储过程等,该表中包含该数据库中的表 存储过程 视图等所有对象 在sqlserver2005,sql ...

  9. SQL Server 地理数据库中的系统表

    转自:http://resources.arcgis.com/zh-cn/help/main/10.1/index.html#/na/002q00000080000000/ 地理数据库的系统表可以强制 ...

随机推荐

  1. Modbus常用功能码协议详解

    Modbus常用功能码协议详解 01H-读线圈状态 1)描述:读从机线圈寄存器,位操作,可读单个或者多个: 2)发送指令: 假设从机地址位0x01,寄存器开始地址0x0023,寄存器结束抵制0x003 ...

  2. C#.NET常见问题(FAQ)-如何让文本框textbox内容限制为数字

    //限制文本框的输入 private void txtQuestionScore_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyCha ...

  3. Discuz常见小问题-如何禁止调整宽屏模式

    在界面-界面设置中,可以勾选窄屏,不允许用户自由切换

  4. CAD2006您没有足够的权限来安装本产品

    在Win10的环境下安装CAD2006,可能会报错"您没有足够的权限来安装本产品". 解决方法是,右键以"兼容性疑难解答"运行 在弹出的对话框中,点击 &quo ...

  5. Mac 流程图

    https://www.lucidchart.com/pages/signup?utm_expid=39895073-174.qKyHpBEbQS26y86OArD-rQ.1 https://www. ...

  6. 解决Visio复制绘图时虚框变实框的问题

    参考:http://www.educity.cn/help/653700.html 问题好像是,在VISIO里只要虚线框的大小超过一个界限,拷贝之后就会变成实线框. 解决办法是修改注册表:[运行reg ...

  7. python enum 枚举

    http://www.cnblogs.com/codingmylife/archive/2013/05/31/3110656.html python 3.4+ from enum import Enu ...

  8. 〖Linux〗实时更新 hosts 文件的脚本

    适用场景: 下载了一个smarthosts的hosts文件,但hosts文件过旧导致一些ip地址已失效无法访问网络. 脚本使用: ./hostsupdate # 直接从 /etc/hosts 中获得需 ...

  9. code vs 2639 约会计划

    code vs传送门   题目描述 Description cc是个超级帅哥,口才又好,rp极高(这句话似乎降rp),又非常的幽默,所以很多mm都跟他关系不错.然而,最关键的是,cc能够很好的调解各各 ...

  10. Android从无知到有知——NO.3

    昨天看了下几种常见的布局,类似于曾经学的html.关于css+div没有接触太多,但这几种布局都比較简单.仅仅要逻辑没有太大问题就能整出来. 相对布局是我们平时默认的布局,也是最经常使用的.前边做的& ...