{"id":6754,"date":"2026-07-12T02:06:37","date_gmt":"2026-07-12T10:06:37","guid":{"rendered":"https:\/\/www.gudusoft.com\/sql-server-data-lineage\/"},"modified":"2026-07-12T02:06:37","modified_gmt":"2026-07-12T10:06:37","slug":"sql-server-data-lineage","status":"publish","type":"page","link":"https:\/\/www.gudusoft.com\/fr\/lignee-de-donnees-sql-server\/","title":{"rendered":"Tra\u00e7abilit\u00e9 des donn\u00e9es SQL Server\u00a0: T-SQL, proc\u00e9dures stock\u00e9es et SQL dynamique"},"content":{"rendered":"<p><strong>Tra\u00e7abilit\u00e9 des donn\u00e9es SQL Server<\/strong> Il s&#039;agit de la cartographie au niveau des colonnes de la fa\u00e7on dont les donn\u00e9es circulent dans votre code T-SQL\u00a0: quelles colonnes sources alimentent chaque table, vue ou rapport cible, et ce qui se passe en cours de route \u00e0 l&#039;int\u00e9rieur des proc\u00e9dures stock\u00e9es, des tables temporaires, <code>FUSIONNER<\/code> instructions et SQL dynamique. <a href=\"https:\/\/www.gudusoft.com\/fr\/outil-de-lignee-de-donnees-sql\/\">Gudu SQLFlow<\/a> Ce mappage est g\u00e9n\u00e9r\u00e9 automatiquement en analysant le T-SQL \u00e0 l&#039;aide d&#039;un analyseur proc\u00e9dural SQL Server d\u00e9di\u00e9, de sorte que la tra\u00e7abilit\u00e9 ne s&#039;arr\u00eate pas au niveau de l&#039;objet comme le font les vues de d\u00e9pendance SSMS.<\/p>\n\n\n\n<div class=\"wp-block-group alignfull has-background is-layout-constrained\" style=\"background-color:#eef7fb;padding-top:24px;padding-bottom:24px\"><div class=\"wp-block-group__inner-container\">\n\n<p><strong>Essayez-le maintenant\u00a0:<\/strong> coller une proc\u00e9dure stock\u00e9e T-SQL dans le <a href=\"https:\/\/sqlflow.gudusoft.com\/?utm_source=gudusoft&amp;utm_medium=website&amp;utm_campaign=sql-server-data-lineage\" target=\"_blank\" rel=\"noreferrer noopener\">Visualiseur de lignage SQL Server gratuit<\/a> et obtenez un diagramme de lignage au niveau des colonnes en quelques secondes.<\/p>\n\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Pourquoi la tra\u00e7abilit\u00e9 des donn\u00e9es SQL Server est plus complexe qu&#039;il n&#039;y para\u00eet<\/h2>\n\n\n\n<p>Sur la plupart des environnements SQL Server, la logique de transformation r\u00e9ellement importante ne r\u00e9side pas dans des vues structur\u00e9es. Elle r\u00e9side dans des proc\u00e9dures stock\u00e9es qui pr\u00e9parent les donn\u00e9es. <code>#temp<\/code> tables, insertion\/mise \u00e0 jour dans les tables de faits avec <code>FUSIONNER<\/code>, branchez sur les param\u00e8tres et assemblez les cha\u00eenes SQL au moment de l&#039;ex\u00e9cution avec <code>sp_executesql<\/code> ou <code>EX\u00c9CUTIF<\/code>Toute approche de tra\u00e7abilit\u00e9 qui se contente de lire les d\u00e9finitions d&#039;objets du catalogue consid\u00e8re la proc\u00e9dure comme une bo\u00eete noire\u00a0: elle sait que la proc\u00e9dure existe, mais pas quelles colonnes la traversent.<\/p>\n\n\n\n<p>Pour extraire la v\u00e9ritable tra\u00e7abilit\u00e9 de ce code, il faut analyser le T-SQL de la m\u00eame mani\u00e8re que le moteur de base de donn\u00e9es\u00a0: construire un mod\u00e8le s\u00e9mantique de chaque instruction du corps de la proc\u00e9dure, suivre les colonnes lors de leur passage dans les tables temporaires et les variables de table, et r\u00e9soudre le code SQL dissimul\u00e9 dans les variables de type cha\u00eene. Il s&#039;agit d&#039;un probl\u00e8me de compilation, et non d&#039;un probl\u00e8me de requ\u00eate de m\u00e9tadonn\u00e9es\u00a0; c&#039;est pr\u00e9cis\u00e9ment pour cela que l&#039;analyseur T-SQL de SQLFlow a \u00e9t\u00e9 con\u00e7u.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ce que les vues de d\u00e9pendances SSMS peuvent et ne peuvent pas vous indiquer<\/h2>\n\n\n\n<p>SQL Server int\u00e8gre des outils de gestion des d\u00e9pendances tr\u00e8s utiles et constitue le point de d\u00e9part id\u00e9al pour r\u00e9pondre rapidement aux questions relatives aux objets. <code>sys.sql_expression_dependencies<\/code>, <code>sys.dm_sql_referenced_entities<\/code>et la bo\u00eete de dialogue \u00ab\u00a0Afficher les d\u00e9pendances\u00a0\u00bb de SSMS vous indique avec certitude que la proc\u00e9dure A fait r\u00e9f\u00e9rence \u00e0 la table B. Ce qu\u2019elle ne peut pas vous dire\u00a0:<\/p>\n\n\n\n<ul><li><strong>\u00c9coulement au niveau de la colonne.<\/strong> Les d\u00e9pendances du catalogue s&#039;arr\u00eatent au niveau de l&#039;objet. Elles montrent que <code>ventes de faits de chargement USP<\/code> touches <code>mise en sc\u00e8ne.ventes<\/code> et <code>dw.fact_sales<\/code>mais pas \u00e7a <code>fact_sales.montant<\/code> est d\u00e9riv\u00e9 de <code>mise en sc\u00e8ne.montant des ventes<\/code> par un <code>CASTING<\/code> alors que <code>staging.sales.load_date<\/code> Filtre uniquement les lignes.<\/li>\n<li><strong>Sens du flux.<\/strong> Une r\u00e9f\u00e9rence n&#039;est pas un flux de donn\u00e9es. La lecture et l&#039;\u00e9criture dans une table produisent la m\u00eame ligne de d\u00e9pendance\u00a0; la tra\u00e7abilit\u00e9 doit savoir quelle est la source et quelle est la cible.<\/li>\n<li><strong>SQL dynamique.<\/strong> Instructions construites dans une cha\u00eene et ex\u00e9cut\u00e9es <code>sp_executesql<\/code> ou <code>EX\u00c9CUTIF<\/code> sont totalement invisibles pour le catalogue de d\u00e9pendances, car elles n&#039;existent qu&#039;au moment de l&#039;ex\u00e9cution.<\/li>\n<li><strong>Houblons de table temporaires.<\/strong> <code>#temp<\/code> les tables vivent dans <code>tempdb<\/code> et ne sont pas suivis comme points de terminaison de d\u00e9pendance, de sorte que toute lign\u00e9e qui passe par l&#039;un d&#039;eux est coup\u00e9e en deux.<\/li><\/ul>\n\n\n\n<p>R\u00e9pondre \u00e0 la question \u00ab\u00a0Quelles sont les cons\u00e9quences d&#039;une modification de cette colonne\u00a0?\u00a0\u00bb ou \u00ab\u00a0Quels champs sources alimentent ce rapport r\u00e9glement\u00e9\u00a0?\u00a0\u00bb n\u00e9cessite l&#039;analyse des corps des requ\u00eates T-SQL. C&#039;est la couche suppl\u00e9mentaire que SQLFlow ajoute aux informations fournies par le catalogue.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Comment SQLFlow retrace la lign\u00e9e \u00e0 travers les proc\u00e9dures T-SQL<\/h2>\n\n\n\n<p>SQLFlow est construit sur le <a href=\"https:\/\/www.sqlparser.com\/\">Analyseur SQL g\u00e9n\u00e9ral (GSP)<\/a>, a commercial SQL compiler front-end developed since the mid-2000s and validated against roughly 13,600 per-dialect SQL test fixtures. Its SQL Server support is a dedicated T-SQL grammar, not a generic ANSI parser with exceptions bolted on, and it includes a full procedural parser for stored procedure bodies. Inside a procedure, SQLFlow resolves:<\/p>\n\n\n\n<ul><li><strong>Tables temporaires et variables de table.<\/strong> Les colonnes sont suivies \u00e0 travers <code>S\u00c9LECTIONNER ... DANS #staging<\/code>, <code>INS\u00c9RER DANS @rows<\/code>et chaque lecture suivante, donc un pipeline \u00e0 trois sauts \u00e0 travers <code>tempdb<\/code> appara\u00eet comme une lign\u00e9e continue.<\/li>\n<li><strong><code>FUSIONNER<\/code> d\u00e9clarations.<\/strong> Chaque <code>UNE FOIS LA CORRESPONDANCE EFFECTU\u00c9E, MISE \u00c0 JOUR<\/code> et <code>SI NON CORRESPONDANT, INS\u00c9RER<\/code> La branche est analys\u00e9e, en mappant les colonnes sources aux colonnes cibles et en traitant le <code>SUR<\/code> condition en tant que lign\u00e9e indirecte.<\/li>\n<li><strong>SQL dynamique.<\/strong> SQL assembl\u00e9 en variables et ex\u00e9cut\u00e9 via <code>sp_executesql<\/code> ou <code>EX\u00c9CUTIF<\/code> est r\u00e9solu et analys\u00e9 plut\u00f4t qu&#039;ignor\u00e9 \u2014 l&#039;un des angles morts les plus courants dans les outils de tra\u00e7abilit\u00e9.<\/li>\n<li><strong>Param\u00e8tres de la proc\u00e9dure.<\/strong> La tra\u00e7abilit\u00e9 se fait par le biais des valeurs des param\u00e8tres jusqu&#039;aux instructions qui les utilisent.<\/li>\n<li><strong>Le graphique des appels.<\/strong> Lorsque des proc\u00e9dures appellent d&#039;autres proc\u00e9dures, SQLFlow g\u00e9n\u00e8re un graphique interactif des appels de proc\u00e9dure \u00e0 proc\u00e9dure, ce qui vous permet de voir l&#039;ensemble de la cha\u00eene ETL, et non une proc\u00e9dure \u00e0 la fois.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Exemple fonctionnel\u00a0: transfert de la table de transit vers la table de faits via MERGE<\/h2>\n\n\n\n<p>Voici le type de proc\u00e9dure que chaque entrep\u00f4t de donn\u00e9es SQL Server contient\u00a0: une proc\u00e9dure de chargement qui transf\u00e8re les lignes de transit dans une table temporaire, puis les fusionne dans une table de faits\u00a0:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE PROCEDURE dbo.usp_load_fact_sales AS BEGIN SELECT s.order_id, s.customer_id, CAST(s.amount AS DECIMAL(18,2)) AS amount INTO #clean_sales FROM staging.sales s WHERE s.load_date = CAST(GETDATE() AS DATE); MERGE dw.fact_sales AS tgt USING #clean_sales AS src ON tgt.order_id = src.order_id WHEN MATCHED THEN UPDATE SET tgt.amount = src.amount WHEN NOT MATCHED THEN INSERT (order_id, customer_id, amount) VALUES (src.order_id, src.customer_id, src.amount); END<\/code><\/pre>\n\n\n\n<p>Ex\u00e9cutez ceci via SQLFlow et le diagramme s&#039;affiche. <code>dw.fact_sales.amount<\/code> aliment\u00e9 par <code>mise en sc\u00e8ne.montant des ventes<\/code> par un <code>CASTING<\/code>, avec <code>#clean_sales<\/code> visible comme \u00e9tape interm\u00e9diaire. Il montre \u00e9galement deux relations qu&#039;une requ\u00eate de catalogue ne pourra jamais produire\u00a0: <code>staging.sales.load_date<\/code> comme filiation indirecte dans chaque colonne de sortie (elle d\u00e9termine quelles lignes sont charg\u00e9es), et <code>id_de_commande<\/code> faisant une double fonction \u2014 lign\u00e9e directe dans la cl\u00e9 ins\u00e9r\u00e9e et lign\u00e9e indirecte \u00e0 travers la <code>FUSION ... SUR<\/code> condition de correspondance.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Tra\u00e7abilit\u00e9 directe vs indirecte en T-SQL<\/h2>\n\n\n\n<p>SQLFlow fait la distinction <strong>lign\u00e9e directe<\/strong> (la valeur d&#039;une colonne source est plac\u00e9e dans une colonne cible) \u00e0 partir de <strong>lign\u00e9e indirecte<\/strong> (une colonne fa\u00e7onne le r\u00e9sultat \u00e0 travers un <code>O\u00d9<\/code> clause, <code>REJOINDRE<\/code> ou <code>FUSIONNER SUR<\/code> condition, <code>GROUPER PAR<\/code>(ou agr\u00e9g\u00e9e). Les deux options sont activables\/d\u00e9sactivables s\u00e9par\u00e9ment dans le diagramme. Ceci est particuli\u00e8rement important en T-SQL, car les proc\u00e9dures de chargement comportent de nombreuses colonnes de filtre (dates de lots, indicateurs d&#039;\u00e9tat, colonnes de filigrane) qui n&#039;apparaissent jamais dans le r\u00e9sultat, mais qui d\u00e9terminent silencieusement les donn\u00e9es re\u00e7ues. La plupart des outils de tra\u00e7abilit\u00e9 ne mod\u00e9lisent pas du tout cette distinction\u00a0; lors de l&#039;analyse d&#039;impact sur une proc\u00e9dure de chargement, c&#039;est souvent cette partie qui pose probl\u00e8me.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Obtention de la lign\u00e9e SQL Server\u00a0: entr\u00e9es et d\u00e9ploiement<\/h2>\n\n\n\n<p>Vous pouvez alimenter SQLFlow avec du code SQL Server de plusieurs mani\u00e8res, selon le degr\u00e9 de verrouillage de votre environnement\u00a0:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Saisir<\/th><th>Comment \u00e7a marche<\/th><th>Bon pour<\/th><\/tr><\/thead><tbody>\n<tr><td>Collez ou t\u00e9l\u00e9chargez du code T-SQL<\/td><td>Scripts, DDL et d\u00e9finitions de proc\u00e9dures sous forme de fichiers ou de texte coll\u00e9<\/td><td>Analyse rapide, revue de code, une proc\u00e9dure \u00e0 la fois<\/td><\/tr>\n<tr><td>M\u00e9tadonn\u00e9es en direct via JDBC<\/td><td>SQLFlow extrait les d\u00e9finitions DDL, de vue et de proc\u00e9dure de l&#039;instance<\/td><td>Lign\u00e9e compl\u00e8te de la base de donn\u00e9es, maintenue \u00e0 jour<\/td><\/tr>\n<tr><td>Extraction des m\u00e9tadonn\u00e9es Grabit<\/td><td>L&#039;utilitaire d&#039;extraction hors ligne envoie les m\u00e9tadonn\u00e9es \u00e0 SQLFlow.<\/td><td>Environnements o\u00f9 le serveur de tra\u00e7abilit\u00e9 ne peut pas acc\u00e9der \u00e0 la base de donn\u00e9es<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p>Dans tous les cas, l&#039;analyse est statique\u00a0: SQLFlow lit le code SQL et les m\u00e9tadonn\u00e9es du sch\u00e9ma, jamais les lignes de vos tables. Pour les environnements r\u00e9glement\u00e9s, <a href=\"https:\/\/www.gudusoft.com\/fr\/sqlflow-on-premise-version\/\">SQLFlow sur site<\/a> runs on Docker or Kubernetes inside your network \u2014 air-gapped if required \u2014 so T-SQL source never leaves your infrastructure. Enterprise deployments batch-scan estates of 100+ databases and over a million columns with incremental scans, and export lineage to DataHub, Microsoft Purview, and OpenMetadata, so SQL Server lineage can flow into the catalog you already run. Pricing: the Cloud edition starts free ($49.99\/month premium); On-Premise is $500\/month or $4,800 one-time per database type \u2014 details on the <a href=\"https:\/\/www.gudusoft.com\/fr\/tarification\/\">page de tarification<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Qu\u2019en est-il des analyseurs syntaxiques et des plateformes de catalogage open source\u00a0?<\/h2>\n\n\n\n<p>Les biblioth\u00e8ques open source comme <code>SQL Lineage<\/code> et <code>sqlglot<\/code> L&#039;analyse syntaxique des requ\u00eates individuelles est efficace, et pour les instructions SELECT et INSERT simples, elle peut suffire. C&#039;est au niveau du code proc\u00e9dural T-SQL que les difficult\u00e9s apparaissent\u00a0: les corps de proc\u00e9dure avec leur flux de contr\u00f4le\u2026 <code>#temp<\/code> \u00e9tat du tableau \u00e0 travers les instructions, <code>FUSIONNER<\/code> L&#039;analyse des branches et la r\u00e9solution dynamique du SQL sont des op\u00e9rations complexes d&#039;ing\u00e9nierie syntaxique que les outils g\u00e9n\u00e9riques ignorent. Les plateformes bas\u00e9es sur le catalogue excellent dans l&#039;organisation des m\u00e9tadonn\u00e9es \u00e0 travers de nombreux syst\u00e8mes\u00a0; pour la tra\u00e7abilit\u00e9 des colonnes via la logique des proc\u00e9dures stock\u00e9es, elles n\u00e9cessitent g\u00e9n\u00e9ralement un moteur d&#039;analyse syntaxique sous-jacent \u2013 r\u00f4le que joue SQLFlow, de mani\u00e8re autonome ou en tant que source de tra\u00e7abilit\u00e9 pour ces plateformes. Le test ultime\u00a0: ex\u00e9cutez votre proc\u00e9dure de production la plus longue sur chaque solution candidate.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Guides de lignage associ\u00e9s<\/h2>\n\n\n\n<ul><li><a href=\"https:\/\/www.gudusoft.com\/fr\/azure-sql-data-lineage\/\">Tra\u00e7abilit\u00e9 des donn\u00e9es Azure SQL<\/a> \u2014 la m\u00eame analyse T-SQL appliqu\u00e9e \u00e0 Azure SQL Database et Managed Instance.<\/li>\n<li><a href=\"https:\/\/www.gudusoft.com\/fr\/outil-de-tracabilite-des-donnees-oracle\/\">Outil de tra\u00e7abilit\u00e9 des donn\u00e9es Oracle<\/a> \u2014 Lign\u00e9e proc\u00e9durale PL\/SQL, l&#039;\u00e9quivalent Oracle de cette page.<\/li>\n<li><a href=\"https:\/\/www.gudusoft.com\/fr\/outil-de-lignee-de-donnees-sql\/\">Pr\u00e9sentation de l&#039;outil de tra\u00e7abilit\u00e9 des donn\u00e9es SQL<\/a> \u2014 comment SQLFlow fonctionne dans les 39 dialectes pris en charge.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Foire aux questions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">SQLFlow peut-il retracer la lign\u00e9e \u00e0 travers le SQL dynamique de SQL Server\u00a0?<\/h3>\n\n\n<p>Oui. Du SQL assembl\u00e9 dans des variables de type cha\u00eene et ex\u00e9cut\u00e9 avec <code>sp_executesql<\/code> ou <code>EX\u00c9CUTIF<\/code> La requ\u00eate est r\u00e9solue et analys\u00e9e au sein de la proc\u00e9dure d&#039;analyse, de sorte que les tables et colonnes concern\u00e9es apparaissent dans le graphe de lignage. Les vues de d\u00e9pendance bas\u00e9es sur un catalogue ne peuvent pas du tout visualiser le SQL dynamique.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">SQLFlow prend-il en charge les tables temporaires # et les variables de table\u00a0?<\/h3>\n\n\n<p>Oui. Les colonnes sont suivies \u00e0 travers <code>#temp<\/code> des tables et des variables de table \u00e0 travers les instructions, donc un pipeline qui met en place les donn\u00e9es dans <code>tempdb<\/code> appara\u00eet comme un chemin continu au niveau des colonnes, de la table source \u00e0 la cible finale.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">En quoi cela diff\u00e8re-t-il des d\u00e9pendances de vue dans SSMS\u00a0?<\/h3>\n\n\n<p>Les vues de d\u00e9pendance SSMS signalent les r\u00e9f\u00e9rences au niveau de l&#039;objet\u00a0: la proc\u00e9dure A mentionne la table B. SQLFlow analyse les corps T-SQL et signale le flux de donn\u00e9es au niveau des colonnes avec sa direction \u2014 quelles colonnes sources alimentent quelles colonnes cibles, par quelles transformations \u2014 y compris les flux via des tables temporaires. <code>FUSIONNER<\/code>et le SQL dynamique que le catalogue ne suit pas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">SQLFlow a-t-il besoin d&#039;acc\u00e9der \u00e0 mes donn\u00e9es SQL Server\u00a0?<\/h3>\n\n\n<p>Non. SQLFlow effectue une analyse statique du code SQL et peut lire les m\u00e9tadonn\u00e9es du sch\u00e9ma, telles que les d\u00e9finitions de tables et de proc\u00e9dures. Il ne lit jamais les donn\u00e9es des lignes de table, et l&#039;\u00e9dition sur site conserve le texte SQL au sein de votre r\u00e9seau.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Puis-je voir quelles proc\u00e9dures stock\u00e9es appellent quelles autres ?<\/h3>\n\n\n<p>Oui. SQLFlow g\u00e9n\u00e8re un graphe d&#039;appels interactif des invocations de proc\u00e9dure \u00e0 proc\u00e9dure, ainsi que la lign\u00e9e des colonnes, ce qui vous permet de naviguer de bout en bout dans une cha\u00eene ETL multi-proc\u00e9dures.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Existe-t-il un moyen gratuit d&#039;essayer SQL Server Lineage\u00a0?<\/h3>\n\n\n<p>Oui. <a href=\"https:\/\/sqlflow.gudusoft.com\/?utm_source=gudusoft&amp;utm_medium=website&amp;utm_campaign=sql-server-data-lineage\">SQLFlow Cloud<\/a> Une version gratuite permet de coller du code T-SQL dans le navigateur et d&#039;obtenir un diagramme de lignage au niveau des colonnes. La version Premium, \u00e0 $49,99\u00a0\u20ac\/mois, offre des donn\u00e9es plus volumineuses et un acc\u00e8s \u00e0 l&#039;API.<\/p>\n\n\n\n<div class=\"wp-block-group alignfull has-background is-layout-constrained\" style=\"background-color:#60d5f6;padding-top:32px;padding-bottom:32px\"><div class=\"wp-block-group__inner-container\">\n\n<h2 class=\"wp-block-heading\">Cartographiez d\u00e8s maintenant la lign\u00e9e de votre serveur SQL.<\/h2>\n\n\n<p>Collez votre proc\u00e9dure stock\u00e9e la plus complexe dans le visualiseur gratuit, ou contactez-nous pour analyser l&#039;ensemble de votre infrastructure SQL Server.<\/p>\n\n\n<div class=\"wp-block-buttons is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/sqlflow.gudusoft.com\/?utm_source=gudusoft&amp;utm_medium=website&amp;utm_campaign=sql-server-data-lineage\" target=\"_blank\" rel=\"noreferrer noopener\">Essayez SQLFlow gratuitement<\/a><\/div>\n<\/div>\n\n\n<div class=\"wp-block-buttons is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.gudusoft.com\/fr\/contact\/\">Demander une d\u00e9monstration pour entreprises<\/a><\/div>\n<\/div>\n\n<\/div><\/div>\n\n\n\n<script type=\"application\/ld+json\">{\n    \"@context\": \"https:\\\/\\\/schema.org\",\n    \"@graph\": [\n        {\n            \"@type\": \"SoftwareApplication\",\n            \"name\": \"Gudu SQLFlow\",\n            \"applicationCategory\": \"DeveloperApplication\",\n            \"applicationSubCategory\": \"SQL Server Data Lineage Tool\",\n            \"operatingSystem\": \"Web, Linux, Windows, macOS\",\n            \"url\": \"https:\\\/\\\/www.gudusoft.com\\\/sql-server-data-lineage\\\/\",\n            \"description\": \"Automated SQL Server data lineage tool with a dedicated T-SQL procedural parser: column-level lineage through stored procedures, temp tables, MERGE, and dynamic SQL, plus a procedure call graph.\",\n            \"featureList\": \"T-SQL stored procedure lineage, dynamic SQL resolution (sp_executesql\\\/EXEC), temp table and table variable tracking, MERGE analysis, procedure call graph, direct vs indirect lineage, JDBC metadata import, DataHub\\\/Purview\\\/OpenMetadata export\",\n            \"softwareVersion\": \"8.2.3\",\n            \"offers\": [\n                {\n                    \"@type\": \"Offer\",\n                    \"name\": \"SQLFlow Cloud Free\",\n                    \"price\": \"0\",\n                    \"priceCurrency\": \"USD\"\n                },\n                {\n                    \"@type\": \"Offer\",\n                    \"name\": \"SQLFlow Cloud Premium\",\n                    \"price\": \"49.99\",\n                    \"priceCurrency\": \"USD\",\n                    \"priceSpecification\": {\n                        \"@type\": \"UnitPriceSpecification\",\n                        \"price\": \"49.99\",\n                        \"priceCurrency\": \"USD\",\n                        \"billingIncrement\": 1,\n                        \"unitText\": \"MONTH\"\n                    }\n                },\n                {\n                    \"@type\": \"Offer\",\n                    \"name\": \"SQLFlow On-Premise\",\n                    \"price\": \"4800\",\n                    \"priceCurrency\": \"USD\"\n                }\n            ],\n            \"publisher\": {\n                \"@type\": \"Organization\",\n                \"name\": \"Gudu Software\",\n                \"url\": \"https:\\\/\\\/www.gudusoft.com\\\/\"\n            }\n        },\n        {\n            \"@type\": \"FAQPage\",\n            \"mainEntity\": [\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Can SQLFlow trace lineage through SQL Server dynamic SQL?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. SQL assembled in string variables and executed with sp_executesql or EXEC is resolved and parsed inside the procedure analysis, so the tables and columns it touches appear in the lineage graph. Catalog-based dependency views cannot see dynamic SQL at all.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Does SQLFlow handle #temp tables and table variables?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. Columns are tracked through #temp tables and table variables across statements, so a pipeline that stages data in tempdb shows up as one continuous column-level path from source table to final target.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"How is this different from View Dependencies in SSMS?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"SSMS dependency views report object-level references: procedure A mentions table B. SQLFlow parses the T-SQL bodies and reports column-level dataflow with direction \\u2014 which source columns feed which target columns, through which transformations \\u2014 including flows through temp tables, MERGE, and dynamic SQL that the catalog does not track.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Does SQLFlow need access to my SQL Server data?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"No. SQLFlow performs static analysis of SQL code and optionally reads schema metadata such as table and procedure definitions. It never reads table row data, and the On-Premise edition keeps SQL text inside your network.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Can I see which stored procedures call which?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. SQLFlow renders an interactive call graph of procedure-to-procedure invocations alongside the column lineage, so you can navigate a multi-procedure ETL chain end to end.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Is there a free way to try SQL Server lineage?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. SQLFlow Cloud has a free tier: paste T-SQL in the browser and get a column-level lineage diagram. Premium is $49.99\\\/month for larger inputs and API access.\"\n                    }\n                }\n            ]\n        }\n    ]\n}<\/script>","protected":false},"excerpt":{"rendered":"<p>SQL Server data lineage is the column-level map of how data moves through your T-SQL code: which source columns feed each target table, view, or report, and what happens along the way inside stored procedures, temp tables, MERGE statements, and dynamic SQL. Gudu SQLFlow builds that map automatically by parsing T-SQL with a dedicated SQL Server procedural parser, so lineage does not stop at the object level the way SSMS dependency views do. Try it now: paste a T-SQL stored procedure into the free SQL Server lineage visualizer and get a column-level lineage diagram in seconds. Why SQL Server data\u2026<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":5}},"_links":{"self":[{"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/pages\/6754"}],"collection":[{"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/comments?post=6754"}],"version-history":[{"count":0,"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/pages\/6754\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/media?parent=6754"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}