-2
votes

SQL Server: Obtenez la version Varchark du nom de la colonne

J'essaie d'obtenir la représentation des chaînes d'une colonne de ma base de données à l'aide du nom complet.

Donc, si j'avais une valeur comme server.dbo.table.id il retournerait ID . En C #, vous pouvez utiliser Nomof pour faire exactement ce que je veux faire.

Quelqu'un peut-il connaître une fonction T-SQL équivalente?


2 commentaires

Pouvez-vous fournir un contexte, est-ce à l'intérieur d'une procédure stockée? Et qu'est-ce que vous utilisez le résultat?


@ user1840485 Vous ou une autre personne regrettera la journée que vous commencez à joindre votre code avec des références à une instance et à une base de données spécifiques. Pourquoi? Une application traverse de nombreuses itérations différentes au fil du temps, car elle évolue la fonctionnalité - il sera toujours nécessaire de disposer de différentes versions de l'application fonctionnant en même temps - chacune à l'aide de sa propre instance et de sa propre base de données. Fais attention à ce que tu souhaites. Cela s'applique également à la même version en fonction de différentes bases de données à des fins de test.


3 Réponses :


0
votes

Je ne comprends pas la partie "serveur" de ce serveur.dbo.table.Id. Voulez-vous dire pour le «serveur» d'être le nom de la base de données?

Si vous pouvez fournir le nom complet sous la forme de schema.table.column, quelque chose comme dbo.table.id Vous pouvez alors interroger les schémas info sur SQL Server en utilisant quelque chose comme celui-ci xxx

Si vous utilisez une ancienne version de SQL Server, vous devrez diviser le nom complet de la colonne.


0 commentaires

0
votes

Ce n'est probablement pas ce que vous cherchez, mais c'est une voie à suivre. Les tables et le schéma d'information SYS sont bons pour trouver la plupart des choses. xxx


1 commentaires

C'est vraiment proche de ce que je veux faire. Je voudrais interroger les tables sys pour la colonne, mais j'aimerais que cette partie: déclarer @fullly_qualifiée nvarchar (1024) = 'serveur.database.schema.table.column' pour être fortement saisi. De cette façon dans mon projet de base de données, je vais faire référence à la colonne et de construction échouerait si cette référence était cassée.



0
votes

ci-dessous est une requête avec la résolution sur la plupart des parties importantes d'une requête SYS.Columns. Je suis sûr qu'il y a quelques types de données que j'ai manqués, il suffit de le faire hors de la DB actuelle que je travaille sur. XXX


0 commentaires