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

Bỏ tất cả các ràng buộc trong một bảng

Bạn luôn có thể sao chép đầu ra từ ngăn dưới cùng, dán nó vào ngăn trên cùng và nhấn F5. Hoặc bạn có thể tạo một chuỗi để thực thi trực tiếp:

DECLARE @sql NVARCHAR(MAX) = N'';

SELECT @sql += N'
ALTER TABLE ' + QUOTENAME(OBJECT_SCHEMA_NAME(parent_object_id))
    + '.' + QUOTENAME(OBJECT_NAME(parent_object_id)) + 
    ' DROP CONSTRAINT ' + QUOTENAME(name) + ';'
FROM sys.foreign_keys;

PRINT @sql;
-- EXEC sp_executesql @sql;

(Khi bạn hài lòng với PRINT xuất ra, nhận xét nó ra và bỏ ghi chú EXEC . Lưu ý rằng đầu ra in sẽ bị cắt ngắn thành 8K trong Management Studio nhưng biến thực sự giữ toàn bộ lệnh.)

Ngoài ra, tôi không biết điều này thực sự liên quan như thế nào đến việc bạn có đang sử dụng một thủ tục được lưu trữ hay không, hoặc tại sao bạn đang cố gắng thực hiện nó "w / o going for SP" ... truy vấn này có thể được chạy dưới dạng một thủ tục được lưu trữ hoặc không, tất cả phụ thuộc vào tần suất bạn sẽ gọi nó, nơi thực hiện thủ tục, v.v.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trong SQL Server, tôi nên tạo chỉ mục cho cột nhận dạng hay cột được tạo tự động?

  2. Lọc báo cáo Power BI dựa trên người dùng hiện tại

  3. SQL Server 2016:Tạo người dùng cơ sở dữ liệu

  4. Kết nối Delphi trên Linux với SQL Server

  5. T-SQL:Làm thế nào để sử dụng các tham số trong SQL động?