Có thể đổi tên một ràng buộc trong SQL Server không? Tôi không muốn phải xóa và tạo một cái mới vì ràng buộc này ảnh hưởng đến các ràng buộc đã tồn tại khác và tôi sẽ phải tạo lại/thay đổi chúng.Đổi tên một ràng buộc trong SQL Server?
Trả lời
Bạn có thể đổi tên sử dụng sp_rename sử dụng @objtype = 'OBJECT'
này hoạt động trên các đối tượng được liệt kê trong sys.objects trong đó bao gồm những hạn chế
Bạn có thể sử dụng sp_rename.
sp_rename 'CK_Ax', 'CK_Ax1'
+1 Đây là những gì SSMS sử dụng khi đổi tên các ràng buộc. Đối với một ràng buộc PK nó vượt qua 'INDEX' làm kiểu đối tượng. –
Điều quan trọng cần lưu ý là ràng buộc CHECK, không giống như PK, không yêu cầu tiền tố bảng trên tham số 'sp_rename' đầu tiên, và sẽ thất bại nếu bạn sử dụng nó. – mattmc3
Sau một đào sâu thêm, tôi thấy rằng nó thực sự có được trong hình thức này:
EXEC sp_rename N'schema.MyIOldConstraint', N'MyNewConstraint', N'OBJECT'
Đây là câu trả lời chính xác hơn. Các biểu mẫu khác chỉ hoạt động vì hầu hết mọi người đổ tất cả các bảng của chúng vào lược đồ mặc định (thường là "dbo :) và bạn có thể bỏ qua lược đồ mặc định. Nhưng nếu bạn sử dụng nhiều lược đồ, điều này là đúng (và bạn luôn có thể nói" dbo "). – Godeke
câu trả lời là đúng:
exec sp_rename
@objname = 'Old_Constraint',
@newname = 'New_Constraint',
@objtype = 'object'
Tôi biết điều này là một câu hỏi cũ, nhưng tôi chỉ thấy sau đây là rất hữu ích, ngoài các câu trả lời tuyệt vời khác:
Nếu ràng buộc để được đổi tên có một khoảng thời gian nào đó (dot), sau đó bạn cần phải đặt nó bên trong dấu ngoặc vuông, như vậy:
sp_rename 'schema.[Name.With.Period.In.It]', 'New.Name.With.Period.In.It'
- 1. Ràng buộc khó chịu trong SQL Server
- 2. sql: cần thay đổi ràng buộc trên bảng đổi tên?
- 3. Đổi tên cột trong SQL Server
- 4. SQL Server 2005 Ràng buộc duy nhất trên hai cột
- 5. SQL Server 2008- Nhận các ràng buộc bảng
- 6. Đổi tên một cột trong MS SQL Server 2005
- 7. Thay đổi kích thước của một cột được tham chiếu bởi một cái nhìn schema-ràng buộc trong SQL Server
- 8. Đổi tên lược đồ SQL Server
- 9. Tôi có thể tạo ràng buộc mặc định được đặt tên trong câu lệnh thêm cột trong SQL Server không?
- 10. Tại sao SQL Server tiếp tục tạo ra ràng buộc DF?
- 11. SQL Server 2005 Làm thế nào để tạo một ràng buộc duy nhất?
- 12. Cố gắng sửa đổi một ràng buộc trong PostgreSQL
- 13. Chuyển đổi tên tháng thành số tháng trong SQL Server
- 14. Thêm tên ràng buộc khoá ngoại trong một SQL Tạo tuyên bố
- 15. Ràng buộc chuỗi máy chủ SQL
- 16. Thay đổi tên cột trong SQL Server 2008
- 17. std :: ràng buộc một hàm ràng buộc
- 18. Giảm ràng buộc chưa đặt tên
- 19. Cách tạo ra ràng buộc duy nhất tổng hợp trong SQL Server 2005
- 20. GUI ràng buộc hoạt động như thế nào trong SQL Server Management Studio?
- 21. Mục đích của PAD_INDEX trong ràng buộc SQL Server này là gì?
- 22. Chuyển đổi một hình thức không ràng buộc thành một hình thức bị ràng buộc?
- 23. Thay đổi các ràng buộc của một Proc trong Ruby
- 24. Từ định đa phần không thể bị ràng buộc về SQL Server 2008
- 25. Thay đổi bảng để cung cấp ràng buộc khóa ngoài
- 26. Đổi tên cột khi sử dụng PIVOT SQL Server 2008
- 27. Ràng buộc tự tham chiếu trong MS SQL
- 28. Làm cách nào để xóa tất cả các ràng buộc khóa ngoài trên một bảng trong Sql Server 2000?
- 29. Hibernate Tên cột Tham số Ràng buộc
- 30. Làm cách nào để thay đổi tên cột SQL Server trong T-SQL?
Chỉ trong trường hợp bạn không thể có được điều này để làm việc, nó nói trong MSDN - * "Khi đổi tên một ràng buộc, lược đồ mà ràng buộc thuộc phải được xác định." * –
Đối với các ràng buộc PK, không cần phải chỉ định '@objtype = 'OBJECT''. Chỉ cần chỉ định tên cũ và tên mới. – pkuderov