在 SQL Server 2000 中,是否有一个 sysobjects 查询将检索用户视图而不是系统视图?
-
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'
不隶属于 StackOverflow