Làm cách nào để có thể xóa tất cả các ràng buộc mặc định thuộc về một bảng cụ thể trong SQL 2005?Làm thế nào tôi có thể thả tất cả ràng buộc ràng buộc mặc định trên một bảng
Trả lời
Một giải pháp from a search: (Edited cho những hạn chế mặc định)
SET NOCOUNT ON
DECLARE @constraintname SYSNAME, @objectid int,
@sqlcmd VARCHAR(1024)
DECLARE CONSTRAINTSCURSOR CURSOR FOR
SELECT NAME, object_id
FROM SYS.OBJECTS
WHERE TYPE = 'D' AND @objectid = OBJECT_ID('Mytable')
OPEN CONSTRAINTSCURSOR
FETCH NEXT FROM CONSTRAINTSCURSOR
INTO @constraintname, @objectid
WHILE (@@FETCH_STATUS = 0)
BEGIN
SELECT @sqlcmd = 'ALTER TABLE ' + OBJECT_NAME(@objectid) + ' DROP CONSTRAINT ' + @constraintname
EXEC(@sqlcmd)
FETCH NEXT FROM CONSTRAINTSCURSOR
INTO @constraintname, @objectid
END
CLOSE CONSTRAINTSCURSOR
DEALLOCATE CONSTRAINTSCURSOR
thay đổi OBJECT_NAME thành PARENT_OBJECT_NAME hoạt động tốt hơnx. –
Truy vấn tốt. Tôi sẽ thực hiện một chỉnh sửa mặc dù. Việc khai báo con trỏ phải là: SELECT NAME, parent_object_id FROM SYS.OBJECTS WHERE TYPE = 'D' AND parent_object_id = OBJECT_ID ('Mytable') –
Chỉ cần tại sao bạn muốn làm điều này? Giảm ràng buộc là một hành động khá quyết liệt và ảnh hưởng đến tất cả người dùng không chỉ là quá trình của bạn. Có thể vấn đề của bạn có thể được giải quyết theo một cách khác. Nếu bạn không phải là dba của hệ thống, bạn nên suy nghĩ rất nhiều về việc bạn nên làm điều này. (Tất nhiên trong hầu hết các hệ thống, một dba sẽ không cho phép bất kỳ ai khác quyền làm điều đó.)
Tôi đang sử dụng một số trường cần hỗ trợ Unicode và tôi không tìm thấy bất kỳ cách nào khác của làm điều này. do đó tôi đang thay đổi kiểu dữ liệu của các cột và trong quá trình thả các ràng buộc và tạo lại chúng ....... –
Tôi biết điều này là cũ, nhưng tôi chỉ tìm thấy nó khi googling. Một giải pháp mà làm việc cho tôi trong SQL 2008 (không chắc chắn về 2005) mà không cần đến con trỏ là dưới đây:
declare @sql nvarchar(max)
set @sql = ''
select @sql = @sql + 'alter table YourTable drop constraint ' + name + ';'
from sys.default_constraints
where parent_object_id = object_id('YourTable')
AND type = 'D'
exec sp_executesql @sql
Điều này chỉ xóa ràng buộc được tìm thấy đầu tiên (ít nhất đó là những gì nó đã làm với tôi). Bạn phải lặp qua tất cả chúng. –
@Ioana Marcu: Làm việc cho tôi trên cơ sở dữ liệu SQL 2008. Tôi nhận được một chuỗi tương tự như dưới đây cho bảng gọi là 'Tài khoản' thay đổi giới hạn thả tài khoản bảng DF__Account__Account__4865BE2A; thay đổi giới hạn thả tài khoản bảng DF__Account__Account__4959E263 tức là một loạt các câu lệnh thả nối – PabloInNZ
- 1. MySQL: làm thế nào tôi có thể thấy tất cả các ràng buộc trên một bảng?
- 2. Làm thế nào tôi có thể thả một ràng buộc "không null" trong Oracle khi tôi không biết tên của ràng buộc?
- 3. std :: ràng buộc một hàm ràng buộc
- 4. Haskell: mặc định ràng buộc để gõ
- 5. Làm thế nào tôi có thể thả bảng nếu có ràng buộc khóa ngoài trong SQL Server?
- 6. 'không hợp lệ để tạo lỗi ràng buộc mặc định' khi cố gắng thêm ràng buộc vào bảng hiện có
- 7. Làm cách nào để thay đổi cột thêm bảng có ràng buộc mặc định có tên và ràng buộc khóa ngoài được đặt tên?
- 8. Có thể thả tất cả các ràng buộc khoá ngoại trên bàn cùng lúc trong mySQL 5 không?
- 9. Thời gian ràng buộc ràng buộc để loại bỏ chế độ xem với JavaScriptSerializer mặc định
- 10. Trong Ninject 2.0, làm thế nào để tôi có cả một ràng buộc chung và một ràng buộc cho một trường hợp specfic?
- 11. Kịch bản T-SQL để sao chép tất cả các ràng buộc bảng
- 12. Làm thế nào tôi có thể đặt ràng buộc của một DataGridTextColumn trong mã?
- 13. Làm thế nào để bạn thả một giá trị mặc định hoặc ràng buộc tương tự trong T-SQL?
- 14. Làm thế nào tôi có thể ràng buộc một ItemsControl.ItemsSource với một tài sản trong XAML?
- 15. Làm thế nào tôi có thể ràng buộc một trường để một điều khiển người dùng
- 16. Tìm bảng nào ràng buộc thuộc về
- 17. Các loại ràng buộc mặc định được bỏ qua
- 18. Ràng buộc Oracle
- 19. Làm thế nào tôi có thể đưa ra một ràng buộc của DataTemplate trong WPF?
- 20. Cột thay đổi, thêm ràng buộc mặc định
- 21. OneWay ràng buộc trên WinForms?
- 22. 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?
- 23. ORA-01.008 với tất cả các biến ràng buộc
- 24. Oracle tìm một ràng buộc
- 25. Có cách nào để xóa các ràng buộc khỏi tất cả các phần tử bị ràng buộc trên một sự kiện đóng biểu mẫu không?
- 26. Làm thế nào tôi có thể vượt qua một giá trị không đổi cho 1 ràng buộc trong đa ràng buộc?
- 27. Ràng buộc bảng SQLite - duy nhất trên nhiều cột
- 28. Tôi có ràng buộc ràng buộc các lớp bình thường bằng Autofac không?
- 29. WPF ràng buộc FallbackValue thiết lập để ràng buộc
- 30. Derby - ràng buộc
Tôi đã xóa câu trả lời của tôi kể từ khi tôi chắc chắn không phải là 100% và tôi không thể kiểm tra. – Peter
Giải pháp của riêng bạn có vẻ ok, phải không? – Peter