Je crée des tables. Les noms de table sont créés de manière dynamique.
Les analystes disent qu'ils ont besoin d'un champ appelé «Dataset» contenant le nom de la table. P>
Longue histoire Pourquoi ils le veulent, apparemment c'est un casse-tue si Ce n'est pas là. p>
Je pensais donc à ajouter une colonne calculée le long des lignes de p> Je connais des fonctions Étant donné que je crée les tables dynamiquement, il est assez facile d'ajouter la colonne et de le remplir lors de la création, mais cette question est apparue et ça continue de vous déranger. p> p> db_user ( ) code>, @@ ServerName code> et ainsi de suite, y a-t-il quelque chose comme ça pour la table? Par exemple, actuel_table () code>? P>
3 Réponses :
Dans la création de table dynamique, nom de table d'une chaîne. Vous pouvez utiliser la même chaîne pour attribuer le nom de la table à la valeur du jeu de données à l'aide de la contrainte par défaut.
Il n'y a pas de cette fonction de ce type. Il existe un moyen d'atteindre votre objectif en utilisant une colonne calculée cependant. Comme ceci: C2 code> est une colonne calculée qui renvoie simplement une constante, qui étant le nom de la table. P> P>
Sans surprise, il semble qu'il n'y ait aucune fonction qui renvoie une nappe-table.
Donc j'ai fait ce que je fais normalement dans un tel cas, créez le tabel dynamiquement à l'aide de sp_executesql et une chaîne que je construis, y compris c2 = @vartable_name.
Cela fonctionnera si vos tables ne disposent pas de caractères ou d'espaces spéciaux. Si vous êtes la personne qui contrôle les nommer, cela ne devrait pas être un problème. Si vous n'êtes pas, vous devriez rechercher avec Nom du quotidien pour créer la table (dans Dynamic SQL, vous devez toujours l'utiliser en fait). Je supposerai que personne n'est aussi stupide d'utiliser des guillemets simples dans leurs noms de table ;-)
Non, il n'y a pas. Et je ne peux pas imaginer pourquoi ils ont besoin de le faire. Vous pouvez utiliser une colonne calculée comme suit:
jeu de données comme "test" code>