Question

J'utilise la requête suivante pour obtenir la liste des types de données définis par l'utilisateur (UDDTs):

SELECT USER_NAME(S.uid) as owner, S.name as Name, T.name as datatypename, 
         OBJECT_NAME(S.domain), OBJECT_NAME(S.tdefault) 
FROM systypes S,systypes T 
WHERE S.type=T.type AND T.usertype<100 AND T.usertype NOT IN(18,24,25,80) AND S.usertype>100  
ORDER BY 1, 2

Sur Sybase 12.5, il permet de revenir à retourner une seule ligne par séparation d'urine.Maintenant, avec Sybase 15.x, il renvoie les 2 rangs:

owner   Name    datatypename 
'dbo'  'auid'  'varchar'
'dbo'  'auid'  'longsysname'

Le type de données de la séparation d'urine est en fait varchar.Je ne suis pas sûr de l'endroit où l' longsysname est à venir à partir de.Quelle est la bonne façon de retourner la liste des UDDTs qui fonctionne dans les deux 12.5.x et 15.x ASE bases de données?

Était-ce utile?

La solution

Essayez ce code:

select s1.name, 
        (select name 
         from systypes s2 
         where s2.usertype=(
                            select min( s3.usertype) 
                            from systypes s3 
                            where  s3.hierarchy=s1.hierarchy)
        ) base_type,  USER_NAME(s1.uid) as owner
    from systypes s1
    WHERE s1.usertype>100  
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top