Generated banner for SQL Object Impact Analysis
Generated logo for SQL Object Impact Analysis

SQL Object Impact Analysis

GitHubOfficialFirst committed by sudhirp25Distributed by GitHub

  • Skill
  • Research and analysis
  • Software development
  • MIT
  • No issues found

From the author

Before modifying a table, column, stored procedure, view, or trigger in a legacy codebase, trace every place that references it — across other SQL objects (procs, views, triggers) AND application code (C#, Angular/TypeScript, JS, or any language in the repo) — and produce a structured blast-radius report so you know what breaks before you change it. Use when the user asks 'what uses this column/table/procedure', 'is it safe to change X', 'what depends on this', 'impact of renaming/dropping X', or before any schema/proc modification in an unfamiliar or legacy codebase. Not for privacy/PII exposure analysis (see data-breach-blast-radius) or query performance tuning (see sql-optimization).
— the description by sudhirp25

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill provides a structured methodology for auditing the impact of schema or stored procedure changes. By tracing dependencies across both the SQL layer and application code, it helps developers identify potential breaking changes before they occur. It is designed for legacy environments where direct references, dynamic SQL, and ORM mappings often obscure the true impact of modifying a database object.

What it does

  • Traces direct and indirect references to database objects across SQL scripts and application code.
  • Identifies dependencies in stored procedures, views, triggers, and application-layer data access code.
  • Classifies findings by confidence level to distinguish between direct hits and uncertain dynamic references.
  • Produces a structured blast-radius report summarizing the risk of a proposed change.
  • Provides actionable verification steps to safely validate changes in staging environments.

When to use it

  • Before renaming or dropping a table, column, stored procedure, view, or trigger.
  • When assessing the risk of modifying a schema element in an unfamiliar or legacy codebase.
  • When you need to know what specific application components or SQL objects depend on a database entity.
  • When you need to verify if a change is safe to implement without breaking downstream consumers.

Advantages

  • Reduces the risk of accidental breaking changes in complex, legacy systems.
  • Provides a clear, scannable report for quick decision-making before code modification.
  • Explicitly highlights the limitations of static analysis to prevent overconfidence.
  • Helps identify hidden dependencies like dynamic SQL or scheduled jobs that are often overlooked.

Usage examples

“What is the impact of dropping the 'UserStatus' column in the 'Users' table?”
The agent will scan the SQL codebase for views and procs using the column, search application code for repository methods or models referencing it, and provide a risk summary.
“Is it safe to rename the 'sp_GetOrderDetails' stored procedure?”
The agent will trace all other stored procedures, jobs, and application-layer calls that invoke this procedure and report the potential blast radius.

Install

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/github/sql-object-impact-analysis/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip sql-object-impact-analysis.zip -d .agents/skills

Documentation by sudhirp25

SQL Object Impact Analysis

You are performing a pre-change dependency trace for a database object (table, column, stored procedure, view, function, or trigger) inside a legacy or unfamiliar codebase. The goal is a single, trustworthy answer to: "If I change this, what else is affected?"

When to use this

Trigger when the user:

  • Names a specific table, column, stored procedure, view, or trigger and asks what uses it, what depends on it, or whether it's safe to change/rename/drop

  • Is about to modify a schema element in a codebase with no ORM, or a mixed legacy stack (raw SQL + stored procs + hand-written data access code)

  • Asks for a "blast radius," "impact analysis," or "dependency trace" of a specific DB object

Do not use this for:

  • General SQL performance tuning (use sql-optimization)

  • SQL code quality/security review (use sql-code-review)

  • Privacy/PII exposure analysis (use data-breach-blast-radius)

  • Architecture-level documentation of an entire codebase (use doc-and-modernize)

Process

  1. Confirm the target object and its exact name(s). Ask if ambiguous (e.g., multiple tables with similar names, or the user says "the customer table" without specifying schema). Get the precise identifier before searching.

  2. Search the SQL layer first:

    • Search all .sql files, stored procedure definitions, views, functions, and triggers in the repo/database scripts folder for direct references to the object name

    • For a column: check every proc/view/trigger that selects, inserts, updates, or filters on it

    • For a table: check every proc/view/trigger that references it, plus foreign key relationships to/from other tables

    • For a stored procedure: check every other proc that calls it, and every scheduled job/agent step that invokes it

    • Note indirect references too — dynamic SQL (EXEC(@sql)), synonyms, and views built on views

  3. Search the application layer:

    • Search all application code (C#, Java, JS/TS, Angular, whatever the repo contains) for:

      • Direct SQL strings referencing the object name

      • ORM/data-access-layer method or class names that map to it (e.g., a repository method calling the stored procedure)

      • API endpoint handlers that ultimately call into the affected data path

    • Trace one layer further where reasonable: does a frontend component consume an endpoint that touches this object? Note it, but don't chase every UI consumer exhaustively — flag "further downstream consumers likely exist" if the trail runs cold rather than guessing.

  4. Classify each finding by confidence:

    • Direct — object name found verbatim in code/SQL

    • Indirect — reached via a proc call chain, ORM mapping, or dynamic SQL that couldn't be fully resolved statically

    • Uncertain — plausible but unverified (e.g., dynamic SQL construction that couldn't be traced to a literal object name)

    • Never present an Uncertain finding as if it were Direct — flag it clearly so the reader knows to verify manually

  5. Produce the report (see Output Format below).

Output Format

Always structure the report as:

  1. Target Object — exact name, type (table/column/proc/view/trigger), and schema

  2. Direct SQL Dependents — list of procs/views/triggers/functions that reference it directly, grouped by object type

  3. Application Code Dependents — list of files/classes/methods that reference it, grouped by layer (data access, API/service, frontend), with file paths

  4. Indirect / Dynamic References — anything found via dynamic SQL, synonyms, or call chains that couldn't be fully resolved — labeled clearly as needing manual verification

  5. Risk Summary — one paragraph: is this object narrowly used (low risk) or widely fanned-out (high risk)? Call out anything that touches a scheduled job, external integration, or reporting layer specifically, since those often get missed

  6. Suggested Verification Steps — concrete next actions before making the change (e.g., "run these two procs against staging data first," "check if the ReportingService endpoint at X depends on this column")

Guidelines

  • Never claim a dependency is complete or exhaustive — static text search cannot catch every dynamic SQL construction or reflection-based ORM mapping. State the search method used and its limits explicitly in the report.

  • Never fabricate a file path, proc name, or line reference. If you searched and found nothing, say "no references found via text search" — not silence, and not an invented result.

  • If the codebase is large enough that a full trace isn't feasible in one pass, say so and propose scoping (e.g., "search only the Orders module first") rather than silently producing a partial report as if it were complete.

  • Keep the report scannable — this is a pre-change safety check someone will read in a few minutes before making a decision, not a full architecture document.

Files

Requirements and compatibility

Written for: GitHub Copilot

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

First committed by
GitHub avatar of sudhirp25sudhirp25
Publisher
GitHub (Official)
Distributed by
GitHub
Source
github/awesome-copilot · skills/sql-object-impact-analysis · commit 797337f
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced
Contributors
sudhirp25

AutoGineer is not affiliated with or endorsed by sudhirp25 or GitHub.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download sql-object-impact-analysis.zip