sql >> Databáze >  >> RDS >> Sqlserver

Najděte poškozené objekty na serveru SQL Server

Možná vás budou zajímat následující články:

  • Michael J. Swart:Najděte chybějící závislosti SQL
  • eggheadcafe.com:Najděte rozbité věci

Řešení Michaela J. Swarta můžete otestovat následovně:

CREATE PROCEDURE proc_bad AS
    SELECT col FROM nonexisting_table
GO

SELECT
    OBJECT_NAME(referencing_id) AS [this sproc or VIEW...],
    referenced_entity_name AS [... depends ON this missing entity name]
FROM 
    sys.sql_expression_dependencies
WHERE 
    is_ambiguous = 0
    AND OBJECT_ID(referenced_entity_name) IS NULL
ORDER BY 
    OBJECT_NAME(referencing_id), referenced_entity_name;

Což vrátí:

+------------------------+------------------------------------------+
| this sproc or VIEW...  |  ... depends ON this missing entity name |
|------------------------+------------------------------------------|
| proc_bad               |  nonexisting_table                       |
+------------------------+------------------------------------------+


  1. 3 Nechutné I/O statistiky, které zpožďují výkon SQL dotazu

  2. 2 způsoby, jak vypsat všechny funkce s hodnotou tabulky v databázi SQL Server

  3. Cena Oracle In-Memory

  4. Jak vyřešit problém s kódováním znaků MySQL?