Existe uma função ou visão do sistema que retorna todos os nomes de propriedades disponíveis?
Eu estava procurando por 'SYSTEMDATAACCESS' e 'USERDATAACCESS' que não estão listados na página MSDN OBJECTPROPERTY . Eu adicionei um comentário sobre eles, mas estou me perguntando se há outros que eu não conheço ... já que é SQL, eu esperaria que eles estivessem disponíveis como metadados consultáveis em algum lugar, mas não consegui encontrar nada. As propriedades nos metadados estão em algum lugar?
EDIT: Embora não seja realmente relevante para minha pergunta, aqui está um exemplo de uso de acesso a dados do sistema. select OBJECTPROPERTY(OBJECT_ID('sys.dm_db_stats_properties'), 'SYSTEMDATAACCESS')
Não. Não há nem mesmo algo que retorne os nomes de todas as funções incorporadas disponíveis (como
OBJECTPROPERTY
ela própria).Esses valores de propriedade são documentados
OBJECTPROPERTYEX
, embora também pareçam funcionarOBJECTPROPERTY
e provavelmente devam ser documentados lá (o tipo de retorno éint
, portanto, não há razão para que eles não devam ser suportados lá e é mais conveniente trabalhar com essa função sem precisando de uma conversão de sql_variant.)Para valores de propriedade totalmente não documentados (como
minlen
paraINDEXPROPERTY
), não tenho conhecimento de nenhuma maneira de determiná-los.Aqui está um script que permitirá consultar todos os nomes e valores de propriedade documentados usando a
OBJECTPROPERTYEX
função https://msdn.microsoft.com/en-us/library/ms188390.aspxOBJECTPROPERTYEX
contém todas as mesmas propriedades queOBJECTPROPERTY
, mas retorna umSQL_Variant
tipo em vez deint
, e portanto tem mais opções, comoBaseType
qual retornará umchar(2)
.Aqui está o Script SQL com alguns exemplos de como usar:
Para recriar a lista de valores:
Cole novamente no Excel e adicione esta fórmula na célula D de cada linha para criar a instrução SQL Select:
=IF(ROW(A1)=1,"","UNION ALL ") & " SELECT [PropertyName] = N' "&A1&"', [PropertyAppliesToType] = N'"&B1&"', [PropertyDesc] = N'"&C1&"' "
Copie/cole os resultados da fórmula do Excel da coluna D de volta no Notepad++ e localize/substitua: "\r\n" por "\t", para obter tudo em uma linha.