comment obtenir une table du nom du schéma
Je suis à l'aide de SQL Server 2008 et ont la requête suivante:
SELECT SO1.name AS Tab,
SC1.name AS Col,
SO2.name AS RefTab,
SC2.name AS RefCol,
FO.name AS FKName
FROM dbo.sysforeignkeys FK
INNER JOIN dbo.syscolumns SC1 ON FK.fkeyid = SC1.id AND FK.fkey = SC1.colid
INNER JOIN dbo.syscolumns SC2 ON FK.rkeyid = SC2.id AND FK.rkey = SC2.colid
INNER JOIN dbo.sysobjects SO1 ON FK.fkeyid = SO1.id
INNER JOIN dbo.sysobjects SO2 ON FK.rkeyid = SO2.id
INNER JOIN dbo.sysobjects FO ON FK.constid = FO.id
Comment récupérer le schéma de tableau nom?
Merci pour votre aide
Le point de vue que vous utilisez sont obsolètes et pour la compatibilité descendante. Une façon est msdn.microsoft.com/en-us/library/bb326599(v=sql.90).aspx
OriginalL'auteur Tom Schreck | 2012-05-22
Vous devez vous connecter pour publier un commentaire.
Utilisation OBJECT_SCHEMA_NAME
J'ai utilisé pour obtenir la liste de toutes les clés étrangères dans la base de données. Merci!
OriginalL'auteur gbn
Comme par Sql Server 2008:
Si veux savoir le nom du schéma de la base de
object_id
ensuite utiliserOBJECT_SCHEMA_NAME()
, si vous voulez obtenir le nom du schéma de la base deschema_id
ensuite utiliserSCHEMA_NAME()
.QUOTENAME
plutôt que'['
+...+']'
. Il sera correctement devis double]
caractères incorporés dans le nom, l'utilisation de +...+ manque.pour cela.
Je suis en train d'essayer ce code
create table #t ( nam varchar(100) ) insert into #t(nam)values('abc[]def') select * from #t Where Quotename(nam) like Quotename('abc[]def') drop table #t
et de ne pas me donner aucun résultat....Je suis en faveur de l'utilisation d'identifiants qui ne nécessitent pas de QUOTENAME...
OriginalL'auteur Romil Kumar Jain