Est-il possible de se joindre à une fonction à valeur de table et une autre table avec des paramètres
Rapide de fond pour ceux qui sont intéressés,
J'ai un master en détail le tableau(options date), à environ 20 détails pour chaque fiche. Notre système oltp qui est de l'enregistrement des données a été fait 21 inserts pour chaque nouvel élément d'information, nous avons sauvé. C'était de tuer le serveur, donc j'essaye de le faire fonctionner par substitution de valeurs séparées par des virgules pour les détails de la table. Tout semble fonctionner, sauf que je peux comprendre comment obtenir les détails du tableau arrière. Je suis en train d'utiliser fonctions à valeur de table, et ce n'est pas assez de travail.
J'aimerais appeler quelque chose comme
Select Top 100 *
FROM dbo.fn_MarketDataDetails (MarketDataMasterID) mdd
INNER JOIN MarketDataMaster mdm on mdm.MarketDataMasterID = mdd.MarketDataMasterID
Clairement, ça ne marche pas à compiler.
Je peux courir
Select Top 100 *
FROM dbo.fn_MarketDataDetails (15425) // Assuming 15425 is a valid MarketDataMasterID
Et je retourne un tableau qui ressemble à mon ancienne table détails.
Est-ce même possible? Suis-je aucun sens?
- Il n'est pas clair pour moi, où vous avez à faire cela dans le CLR ou TSQL?
- TSQL. Si j'ai lu dans la fiche, je peux facilement le faire en C#, mais j'aimerais le faire en TSQL, si possible.
Vous devez vous connecter pour publier un commentaire.
APPLIQUER l'opérateur devrait faire l'affaire:
Essentiellement, cela signifie que les appels de la fonction une fois par ligne retournée à partir de MarketDataMaster.
"cross apply" fonctionne comme une jointure interne, en ce que seules les lignes pour lesquelles les données renvoyées par la fonction sera retourné; utilisation extérieure appliquer" pour des fonctionnalités similaires aux jointures externes gauches.