Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Một cách đáng tin cậy để xác minh các thủ tục được lưu trữ T-SQL

Đây là những gì đã làm việc cho tôi:

-- Based on comment from http://blogs.msdn.com/b/askjay/archive/2012/07/22/finding-missing-dependencies.aspx
-- Check also http://technet.microsoft.com/en-us/library/bb677315(v=sql.110).aspx

select o.type, o.name, ed.referenced_entity_name, ed.is_caller_dependent
from sys.sql_expression_dependencies ed
join sys.objects o on ed.referencing_id = o.object_id
where ed.referenced_id is null

Bạn sẽ nhận được tất cả các phụ thuộc còn thiếu cho SP của mình, giải quyết các vấn đề với ràng buộc muộn.

Ngoại lệ :is_caller_dependent =1 không nhất thiết có nghĩa là một phụ thuộc bị hỏng. Nó chỉ có nghĩa là sự phụ thuộc được giải quyết trong thời gian chạy vì lược đồ của đối tượng được tham chiếu không được chỉ định. Bạn có thể tránh nó chỉ định lược đồ của đối tượng được tham chiếu (một SP khác chẳng hạn).

Tín dụng cho blog của Jay và người bình luận ẩn danh ...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. T-SQL Stored Procedure Execution có phải là 'nguyên tử' không?

  2. Giao thức TDS Phiên bản 8.0 là gì và tại sao tôi nên sử dụng nó?

  3. giải quyết lỗi kết nối giữa sql server 2008 r2 với java trong eclipse

  4. Làm thế nào để viết một foreach trong SQL Server?

  5. sử dụng biến trong câu lệnh FROM