No SQL Server 2000, existe uma consulta sysobjects que recuperará visualizações do usuário e não visualizações do sistema?
-
09-06-2019 - |
Pergunta
Supondo que tal consulta exista, eu apreciaria muito a ajuda.
Estou tentando desenvolver um script de permissões que concederá permissões de "seleção" e "referências" nas tabelas e visualizações do usuário em um banco de dados.Minha esperança é que a execução dos comandos "grant" em cada elemento desse conjunto facilite a manutenção das permissões atualizadas quando novas tabelas e visualizações forem adicionadas ao banco de dados.
Solução
select * from information_schema.tables
WHERE OBJECTPROPERTY(OBJECT_ID(table_name),'IsMSShipped') =0
Excluirá dt_properties e tabelas de sistema
adicionar
where table_type = 'view'
se você quer apenas a vista
Outras dicas
SELECT
*
FROM
sysobjects
WHERE
xtype = 'V' AND
type = 'V' AND
category = 0
Aqui está uma lista dos valores possíveis para tipo x:
- C = restrição CHECK
- D = restrição padrão ou DEFAULT
- F = restrição FOREIGN KEY
- L = Registro
- P = procedimento armazenado
- PK = restrição PRIMARY KEY (o tipo é K)
- RF = procedimento armazenado do filtro de replicação
- S = tabela do sistema
- TR = Gatilho
- U = tabela de usuários
- UQ = restrição UNIQUE (o tipo é K)
- V = Visualizar
- X = procedimento armazenado estendido
Aqui estão os valores possíveis para tipo:
- C = restrição CHECK
- D = restrição padrão ou DEFAULT
- F = restrição FOREIGN KEY
- FN = função escalar
- IF = função de tabela embutida
- K = PRIMARY KEY ou restrição UNIQUE
- L = Registro
- P = procedimento armazenado
- R = Regra
- RF = procedimento armazenado do filtro de replicação
- S = tabela do sistema
- TF = Função de tabela
- TR = Gatilho
- U = tabela de usuários
- V = Visualizar
- X = procedimento armazenado estendido
finalmente, o categoria campo parece agrupar com base em diferentes tipos de objetos.Depois de analisar o conjunto de resultados retornado, as visualizações do sistema parecem ter uma categoria = 2, enquanto todas as visualizações do usuário têm um categoria = 0.Espero que isto ajude.
Para mais informações visite http://msdn.microsoft.com/en-us/library/aa260447(SQL.80).aspx
select * from information_schema.tables
where table_type = 'view'