tôi có thay đổi tên của bảng thông qua thủ tục sp_rename.Do tôi cần phải thay đổi hạn chế fk của bảng con?sql: cần thay đổi ràng buộc trên bảng đổi tên?
Trả lời
ràng buộc và lập chỉ mục sẽ được tự động đổi tên, nhưng bạn sẽ cần phải tự làm đổi tên công việc trong thủ tục lưu trữ, triggers, hàm do người dùng định nghĩa và chế độ xem tham khảo cai ban. Xem the documentation on MSDN.
Không, thay đổi tên bảng cũng sẽ cập nhật Siêu dữ liệu ứng dụng trong danh mục hệ thống và do đó ràng buộc sẽ vẫn tham chiếu bảng chính xác.
Bạn có thể sử dụng tập lệnh sau để xác định tất cả các khóa ngoại để xác thực thay đổi của bạn nếu bạn muốn.
SELECT PKTABLE_QUALIFIER = CONVERT(SYSNAME,DB_NAME()),
PKTABLE_OWNER = CONVERT(SYSNAME,SCHEMA_NAME(O1.SCHEMA_ID)),
PKTABLE_NAME = CONVERT(SYSNAME,O1.NAME),
PKCOLUMN_NAME = CONVERT(SYSNAME,C1.NAME),
FKTABLE_QUALIFIER = CONVERT(SYSNAME,DB_NAME()),
FKTABLE_OWNER = CONVERT(SYSNAME,SCHEMA_NAME(O2.SCHEMA_ID)),
FKTABLE_NAME = CONVERT(SYSNAME,O2.NAME),
FKCOLUMN_NAME = CONVERT(SYSNAME,C2.NAME),
-- Force the column to be non-nullable (see SQL BU 325751)
--KEY_SEQ = isnull(convert(smallint,k.constraint_column_id), sysconv(smallint,0)),
UPDATE_RULE = CONVERT(SMALLINT,CASE OBJECTPROPERTY(F.OBJECT_ID,'CnstIsUpdateCascade')
WHEN 1 THEN 0
ELSE 1
END),
DELETE_RULE = CONVERT(SMALLINT,CASE OBJECTPROPERTY(F.OBJECT_ID,'CnstIsDeleteCascade')
WHEN 1 THEN 0
ELSE 1
END),
FK_NAME = CONVERT(SYSNAME,OBJECT_NAME(F.OBJECT_ID)),
PK_NAME = CONVERT(SYSNAME,I.NAME),
DEFERRABILITY = CONVERT(SMALLINT,7) -- SQL_NOT_DEFERRABLE
FROM SYS.ALL_OBJECTS O1,
SYS.ALL_OBJECTS O2,
SYS.ALL_COLUMNS C1,
SYS.ALL_COLUMNS C2,
SYS.FOREIGN_KEYS F
INNER JOIN SYS.FOREIGN_KEY_COLUMNS K
ON (K.CONSTRAINT_OBJECT_ID = F.OBJECT_ID)
INNER JOIN SYS.INDEXES I
ON (F.REFERENCED_OBJECT_ID = I.OBJECT_ID
AND F.KEY_INDEX_ID = I.INDEX_ID)
WHERE O1.OBJECT_ID = F.REFERENCED_OBJECT_ID
AND O2.OBJECT_ID = F.PARENT_OBJECT_ID
AND C1.OBJECT_ID = F.REFERENCED_OBJECT_ID
AND C2.OBJECT_ID = F.PARENT_OBJECT_ID
AND C1.COLUMN_ID = K.REFERENCED_COLUMN_ID
AND C2.COLUMN_ID = K.PARENT_COLUMN_ID
Kịch bản này có nguồn gốc từ: Identify all of your foreign keys in a SQL Server database
Đó thực sự là công cụ osum dude.Thanks –
Bạn được chào đón, vui mừng được trợ giúp. –
[ở đây] (http://stackoverflow.com/questions/8094156/know-relationships-between-all-the-tables-of-database-in-sql-server) là ** một tập lệnh khác **, hy vọng sẽ giúp ai đó . – stom
- 1. Thay đổi bảng để cung cấp ràng buộc khóa ngoài
- 2. Đổi tên một ràng buộc trong SQL Server?
- 3. thay đổi tương tác ràng buộc & pmap?
- 4. 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?
- 5. thay đổi bảng tên chữ hoa
- 6. Cột thay đổi, thêm ràng buộc mặc định
- 7. Thay đổi các ràng buộc của một Proc trong Ruby
- 8. Đổi tên Bảng SQL Server, xếp tầng thay đổi thông qua PK và FK's
- 9. WPF Ràng buộc thay đổi màu tô của hình elip
- 10. Thay đổi bảng MySQL để thêm ràng buộc khóa ngoài dẫn đến lỗi
- 11. Thay đổi giá trị ràng buộc, không ràng buộc chính nó
- 12. sql 2005 đổi tên bảng lực có phụ thuộc
- 13. cách đổi tên bảng mà không cần tạo lại nó
- 14. NHibernate - Buộc thoát trên Bảng Tên
- 15. WPF và MVVM: Thay đổi chuyển đổi ràng buộc dữ liệu khi chạy
- 16. Thay đổi tên cột trong SQL Server 2008
- 17. DataContractSerializer - thay đổi không gian tên và deserialize tập tin bị ràng buộc vào không gian tên cũ
- 18. SQL Server 2008- Nhận các ràng buộc bảng
- 19. Cố gắng sửa đổi một ràng buộc trong PostgreSQL
- 20. SQL Server 2005 Ràng buộc duy nhất trên hai cột
- 21. Giảm ràng buộc chưa đặt tên
- 22. AngularJS: Chọn không thay đổi tùy chọn đã chọn về thay đổi biến phạm vi bị ràng buộc
- 23. Làm cách nào để thay đổi tên bảng bằng truy vấn SQL?
- 24. Tìm bảng nào ràng buộc thuộc về
- 25. Thay đổi Bảng Thêm Cú pháp Cột
- 26. INotifyPropertyThay đổi sử dụng bên ngoài ràng buộc dữ liệu
- 27. cách đổi tên cột bằng T-SQL
- 28. Cách thay đổi tên biến hàng trong bảng
- 29. Làm cách nào để đổi tên một cột trong bảng cơ sở dữ liệu bằng SQL?
- 30. Thay đổi Tên miền Cookie
Cảm ơn bạn đã tiết kiệm cho tôi giá trị buổi sáng của công việc không cần thiết :-) – EvilDr