首先遇到的问题是这样的,我们有两个表,比如A 和 A_ARCH, A_ARCH 的结构是和A一模一样的,但是是在两个schema里的现在用这条语句
select COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH as DATA_LENGTH from 
INFORMATION_SCHEMA.COLUMNS
where upper(TABLE_NAME)='A' and upper(TABLE_SCHEMA)='S'
except
select COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH as DATA_LENGTH from 
INFORMATION_SCHEMA.COLUMNS
where upper(TABLE_NAME)='A_ARCH' and upper(TABLE_SCHEMA)='S_ARCH' 查出来有字段不一致,但是结构应该是一致的(数据库在客户那边,只有让PS的去验证)
现在考虑好像是因为INFORMATION_SCHEMA.COLUMNS没有refresh,因为我们是先drop table然后在create arch的表
但是google了好久,也没有看到相关的topic 。
想问一下有没有这种可能?
还有怎么查看这个INFORMATION_SCHEMA.COLUMNS视图的DDL语句?
还有一个问题,我看文档上说INFORMATION_SCHEMA.COLUMNS视图的TABLE_SCHEMA这个字段解释如下
Name of schema that contains the table.
 Important
Do not use INFORMATION_SCHEMA views to determine the schema of an object. The only reliable way to find the schema of an object is to query the sys.objects catalog view. INFORMATION_SCHEMA views could be incomplete since they are not updated for all new features.请问这个会出现不正确的情况吗?谢谢

解决方案 »

  1.   

    我其实很不喜欢几句中文几句英文的....你直接说你想干嘛吧,我看看有没有别的方式。还有说说你的是SQLServer多少
      

  2.   


    呵呵,我就是想问一下
    1:表更新后,系统视图INFORMATION_SCHEMA.COLUMNS会不会没有更新
    2:INFORMATION_SCHEMA.COLUMNS这个视图的TABLE_SCHEMA这个字段会不会不正确(根据文档上的解释)谢谢
      

  3.   

    SQL SERVER 版本我不知道,我们开发用的2008 xe的版本,客户那边没有标明具体的版本号,2K,05和08的情况下有没有类似的问题?
      

  4.   

    根据SQLServer·2008 internal上说的INFORMATION_SCHEMA是基于sql-92标准,所以有些新特性是不包含的,比如索引,或者2005以后出现的一些新特性如分区、filestream、clr等等,都会不包含,所以如果你的表有这些的话是会丢失的,微软建议使用目录视图,因为2000没有目录视图,所以我问你是SQLServer什么版本。
      

  5.   


    没有任何索引,分区等等,连主键都没有,就是一个表结构和我们生产系统中表一模一样,然后什么约束都没有的表,但是执行上面那条SQL有返回值
      

  6.   

    2008联机丛书上有这么一句:请勿使用 INFORMATION_SCHEMA 视图来确定对象的架构。查找对象架构的唯一可靠的方式是查询 sys.objects 目录视图。可能是这个原因引起的。
      

  7.   

    INFORMATION_SCHEMA的信息会不准确吗?我现在猜测可能有这个原因,但是找不到相关的文档。
    但是我再网上看到这个视图是根据sys.object来的啊
    http://connect.microsoft.com/SQLServer/feedback/details/686118/doc-information-schema-tables-gives-improper-warning-about-schema#details
      

  8.   

    INFORMATION_SCHEMA的信息目前没有看到权威文档说不准确,所以可以相信,但是也要注意这类信息视图的“特别地方”,这类是目前微软暂未提出在后续版本会删除的功能。所以是可以用。不过如果可以,还是用目录视图较为准确和保险。
      

  9.   

    请问这句SQL怎么转换成目录视图?
      

  10.   

    你是要获取表的结构是吧?看看我的文章有没有帮助http://blog.csdn.net/dba_huangzj/article/details/8460174