Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Намерете счупени обекти в SQL Server

Може да ви е интересно да разгледате следните статии:

  • Майкъл Дж. Суорт:Намерете липсващи SQL зависимости
  • eggheadcafe.com:Намерете счупени неща

Можете да тествате решението на Michael J. Swart, както следва:

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;

Което връща:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Търсене на текст в съхранена процедура в SQL Server

  2. Често срещани грешки в SQL сървъра

  3. Разрешението EXECUTE беше отказано на обекта 'xxxxxxx', база данни 'zzzzzzz', схема 'dbo'

  4. Как мога да планирам работа за ежедневно изпълнение на SQL заявка?

  5. OLTP в паметта:Какво е новото в SQL Server 2016