在 SQL Server 2000 中,是否有一个 sysobjects 查询将检索用户视图而不是系统视图?

StackOverflow https://stackoverflow.com/questions/33226

  •  09-06-2019
  •  | 
  •  

假设存在这样的查询,我将非常感谢您的帮助。

我正在尝试开发一个权限脚本,该脚本将授予对数据库中的用户表和视图的“选择”和“引用”权限。我希望在这样的集合中的每个元素上执行“grant”命令将使在将新表和视图添加到数据库时更容易保持权限最新。

有帮助吗?

解决方案

select * from information_schema.tables
WHERE OBJECTPROPERTY(OBJECT_ID(table_name),'IsMSShipped') =0 

将排除 dt_properties 和系统表

添加

where table_type = 'view' 

如果你只是想看风景

其他提示

SELECT
    *
FROM
    sysobjects
WHERE
    xtype = 'V' AND
    type = 'V' AND
    category = 0

以下是可能值的列表 类型:

  • C = 检查约束
  • D = 默认或 DEFAULT 约束
  • F = 外键约束
  • L = 对数
  • P = 存储过程
  • PK = PRIMARY KEY 约束(类型为 K)
  • RF = 复制过滤器存储过程
  • S = 系统表
  • TR = 触发
  • U = 用户表
  • UQ = UNIQUE 约束(类型为 K)
  • V = 视图
  • X = 扩展存储过程

以下是可能的值 类型:

  • C = 检查约束
  • D = 默认或 DEFAULT 约束
  • F = 外键约束
  • FN = 标量函数
  • IF = 内联表函数
  • K = 主键或唯一约束
  • L = 对数
  • P = 存储过程
  • R = 规则
  • RF = 复制过滤器存储过程
  • S = 系统表
  • TF = 表函数
  • TR = 触发
  • U = 用户表
  • V = 视图
  • X = 扩展存储过程

最后, 类别 字段看起来像是根据不同类型的对象进行分组的。分析返回结果集后,系统视图看起来有一个 类别 = 2,而所有用户视图都有一个 类别 = 0。希望这可以帮助。

欲了解更多信息,请访问 http://msdn.microsoft.com/en-us/library/aa260447(SQL.80).aspx

select * from information_schema.tables
where table_type = 'view'
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top