Làm cách nào để loại bỏ tất cả các thuộc tính mở rộng trên SQL Server theo cách có thể chạy được?Thả tất cả các thuộc tính mở rộng trên SQL Server
Trả lời
Xin vui lòng xem địa chỉ URL Dưới đây để thả các bất động sản mở rộng:
sử dụng kịch bản này
EXEC sys.sp_dropextendedproperty
@name =N'MS_Description',
@level0type = N'SCHEMA',
@level0name = N'dbo',
@level1type = N'TABLE',
@level1name = N'ActivityEventRecipient';
GO
Nguồn: drop extended property
Nếu bạn muốn có một kịch bản mà sẽ thả tất cả các thuộc tính mở rộng trong một lần sau đó sử dụng một tập lệnh mà Jamie Thomson đã tạo sẽ tạo ra các giọt cho tất cả các thuộc tính mở rộng. Bạn có thể tải xuống từ số article này.
Tôi đã dán kịch bản của mình ở đây (đầy đủ với sự thừa nhận trong trường hợp bài viết được lấy ra):
/*
This script will generate calls to sp_dropextendedproperty for every
extended property that exists in your database.
Actually, a caveat: I don't promise that it will catch each and every
extended property that exists, but I'm confident it will catch most of them!
It is based on this:
http://blog.hongens.nl/2010/02/25/drop-all-extended-properties-in-a-mssql-database/
by Angelo Hongens.
Also had lots of help from this:
http://www.sqlservercentral.com/articles/Metadata/72609/
by Adam Aspin
Adam actually provides a script at that link to do something very similar
but when I ran it I got an error:
Msg 468, Level 16, State 9, Line 78
Cannot resolve the collation conflict between "Latin1_General_100_CS_AS" and "Latin1_General_CI_AS" in the equal to operation.
So I put together this version instead.
Use at your own risk.
Jamie Thomson
2012-03-25
*/
/*Are there any extended properties? Let's take a look*/
select *,OBJECT_NAME(major_id) from sys.extended_properties xp
/*Now let's generate sp_dropextendedproperty statements for all of them.*/
--tables
set nocount on;
select 'EXEC sp_dropextendedproperty
@name = '''+xp.name+'''
,@level0type = ''schema''
,@level0name = ''' + object_schema_name(xp.major_id) + '''
,@level1type = ''table''
,@level1name = ''' + object_name(xp.major_id) + ''''
from sys.extended_properties xp
join sys.tables t on xp.major_id = t.object_id
where xp.class_desc = 'OBJECT_OR_COLUMN'
and xp.minor_id = 0
union
--columns
select 'EXEC sp_dropextendedproperty
@name = '''+sys.extended_properties.name+'''
,@level0type = ''schema''
,@level0name = ''' + object_schema_name(extended_properties.major_id) + '''
,@level1type = ''table''
,@level1name = ''' + object_name(extended_properties.major_id) + '''
,@level2type = ''column''
,@level2name = ''' + columns.name + ''''
from sys.extended_properties
join sys.columns
on columns.object_id = extended_properties.major_id
and columns.column_id = extended_properties.minor_id
where extended_properties.class_desc = 'OBJECT_OR_COLUMN'
and extended_properties.minor_id > 0
union
--check constraints
select 'EXEC sp_dropextendedproperty
@name = '''+xp.name+'''
,@level0type = ''schema''
,@level0name = ''' + object_schema_name(xp.major_id) + '''
,@level1type = ''table''
,@level1name = ''' + object_name(cc.parent_object_id) + '''
,@level2type = ''constraint''
,@level2name = ''' + cc.name + ''''
from sys.extended_properties xp
join sys.check_constraints cc on xp.major_id = cc.object_id
union
--check constraints
select 'EXEC sp_dropextendedproperty
@name = '''+xp.name+'''
,@level0type = ''schema''
,@level0name = ''' + object_schema_name(xp.major_id) + '''
,@level1type = ''table''
,@level1name = ''' + object_name(cc.parent_object_id) + '''
,@level2type = ''constraint''
,@level2name = ''' + cc.name + ''''
from sys.extended_properties xp
join sys.default_constraints cc on xp.major_id = cc.object_id
union
--views
select 'EXEC sp_dropextendedproperty
@name = '''+xp.name+'''
,@level0type = ''schema''
,@level0name = ''' + object_schema_name(xp.major_id) + '''
,@level1type = ''view''
,@level1name = ''' + object_name(xp.major_id) + ''''
from sys.extended_properties xp
join sys.views t on xp.major_id = t.object_id
where xp.class_desc = 'OBJECT_OR_COLUMN'
and xp.minor_id = 0
union
--sprocs
select 'EXEC sp_dropextendedproperty
@name = '''+xp.name+'''
,@level0type = ''schema''
,@level0name = ''' + object_schema_name(xp.major_id) + '''
,@level1type = ''procedure''
,@level1name = ''' + object_name(xp.major_id) + ''''
from sys.extended_properties xp
join sys.procedures t on xp.major_id = t.object_id
where xp.class_desc = 'OBJECT_OR_COLUMN'
and xp.minor_id = 0
union
--FKs
select 'EXEC sp_dropextendedproperty
@name = '''+xp.name+'''
,@level0type = ''schema''
,@level0name = ''' + object_schema_name(xp.major_id) + '''
,@level1type = ''table''
,@level1name = ''' + object_name(cc.parent_object_id) + '''
,@level2type = ''constraint''
,@level2name = ''' + cc.name + ''''
from sys.extended_properties xp
join sys.foreign_keys cc on xp.major_id = cc.object_id
union
--PKs
SELECT
'EXEC sys.sp_dropextendedproperty @level0type = N''SCHEMA'', @level0name = [' + SCH.name + '], @level1type = ''TABLE'', @level1name = [' + TBL.name + '] , @level2type = ''CONSTRAINT'', @level2name = [' + SKC.name + '] ,@name = ''' + REPLACE(CAST(SEP.name AS NVARCHAR(300)),'''','''''') + ''''
FROM sys.tables TBL
INNER JOIN sys.schemas SCH
ON TBL.schema_id = SCH.schema_id
INNER JOIN sys.extended_properties SEP
INNER JOIN sys.key_constraints SKC
ON SEP.major_id = SKC.object_id
ON TBL.object_id = SKC.parent_object_id
WHERE SKC.type_desc = N'PRIMARY_KEY_CONSTRAINT'
union
--Table triggers
SELECT
'EXEC sys.sp_dropextendedproperty @level0type = N''SCHEMA'', @level0name = [' + SCH.name + '], @level1type = ''TABLE'', @level1name = [' + TBL.name + '] , @level2type = ''TRIGGER'', @level2name = [' + TRG.name + '] ,@name = ''' + REPLACE(CAST(SEP.name AS NVARCHAR(300)),'''','''''') + ''''
FROM sys.tables TBL
INNER JOIN sys.triggers TRG
ON TBL.object_id = TRG.parent_id
INNER JOIN sys.extended_properties SEP
ON TRG.object_id = SEP.major_id
INNER JOIN sys.schemas SCH
ON TBL.schema_id = SCH.schema_id
union
--UDF params
SELECT
'EXEC sys.sp_dropextendedproperty @level0type = N''SCHEMA'', @level0name = [' + SCH.name + '], @level1type = ''FUNCTION'', @level1name = [' + OBJ.name + '] , @level2type = ''PARAMETER'', @level2name = [' + PRM.name + '] ,@name = ''' + REPLACE(CAST(SEP.name AS NVARCHAR(300)),'''','''''') + ''''
FROM sys.extended_properties SEP
INNER JOIN sys.objects OBJ
ON SEP.major_id = OBJ.object_id
INNER JOIN sys.schemas SCH
ON OBJ.schema_id = SCH.schema_id
INNER JOIN sys.parameters PRM
ON SEP.major_id = PRM.object_id
AND SEP.minor_id = PRM.parameter_id
WHERE SEP.class_desc = N'PARAMETER'
AND OBJ.type IN ('FN', 'IF', 'TF')
union
--sp params
SELECT
'EXEC sys.sp_dropextendedproperty @level0type = N''SCHEMA'', @level0name = [' + SCH.name + '], @level1type = ''PROCEDURE'', @level1name = [' + SPR.name + '] , @level2type = ''PARAMETER'', @level2name = [' + PRM.name + '] ,@name = ''' + REPLACE(CAST(SEP.name AS NVARCHAR(300)),'''','''''') + ''''
FROM sys.extended_properties SEP
INNER JOIN sys.procedures SPR
ON SEP.major_id = SPR.object_id
INNER JOIN sys.schemas SCH
ON SPR.schema_id = SCH.schema_id
INNER JOIN sys.parameters PRM
ON SEP.major_id = PRM.object_id
AND SEP.minor_id = PRM.parameter_id
WHERE SEP.class_desc = N'PARAMETER'
union
--DB
SELECT
'EXEC sys.sp_dropextendedproperty @name = ''' + REPLACE(CAST(SEP.name AS NVARCHAR(300)),'''','''''') + ''''
FROM sys.extended_properties SEP
WHERE class_desc = N'DATABASE'
union
--schema
SELECT
'EXEC sys.sp_dropextendedproperty @level0type = N''SCHEMA'', @level0name = [' + SCH.name + '] ,@name = ''' + REPLACE(CAST(SEP.name AS NVARCHAR(300)),'''','''''') + ''''
FROM sys.extended_properties SEP
INNER JOIN sys.schemas SCH
ON SEP.major_id = SCH.schema_id
WHERE SEP.class_desc = N'SCHEMA'
union
--DATABASE_FILE
SELECT
'EXEC sys.sp_dropextendedproperty @level0type = N''FILEGROUP'', @level0name = [' + DSP.name + '], @level1type = ''LOGICAL FILE NAME'', @level1name = ' + DBF.name + ' ,@name = ''' + REPLACE(CAST(SEP.name AS NVARCHAR(300)),'''','''''') + ''''
FROM sys.extended_properties SEP
INNER JOIN sys.database_files DBF
ON SEP.major_id = DBF.file_id
INNER JOIN sys.data_spaces DSP
ON DBF.data_space_id = DSP.data_space_id
WHERE SEP.class_desc = N'DATABASE_FILE'
union
--filegroup
SELECT
'EXEC sys.sp_dropextendedproperty @level0type = N''FILEGROUP'', @level0name = [' + DSP.name + '] ,@name = ''' + REPLACE(CAST(SEP.name AS NVARCHAR(300)),'''','''''') + ''''
FROM sys.extended_properties SEP
INNER JOIN sys.data_spaces DSP
ON SEP.major_id = DSP.data_space_id
WHERE DSP.type_desc = 'ROWS_FILEGROUP'
union
-- INDEX
select 'EXEC sp_dropextendedproperty
@name = '''+sys.extended_properties.name+'''
,@level0type = ''schema''
,@level0name = ''' + object_schema_name(extended_properties.major_id) + '''
,@level1type = ''table''
,@level1name = ''' + object_name(extended_properties.major_id) + '''
,@level2type = ''index''
,@level2name = ''' + indexes.name + ''''
from sys.extended_properties
join sys.indexes
on indexes.object_id = extended_properties.major_id
and indexes.index_id = extended_properties.minor_id
where extended_properties.class_desc = 'INDEX'
and extended_properties.minor_id > 0
Tôi nhận được điều này để làm việc cuối cùng nhưng phải a) xóa sơ đồ cơ sở dữ liệu từ cơ sở dữ liệu, và b) kịch bản giả định tất cả các thuộc tính cột là trên bảng, tôi đã có một số trên quan điểm phải sửa đổi kịch bản. –
nó hoạt động, nhưng chỉ một lưu ý, nó sẽ cố gắng loại bỏ các thuộc tính mở rộng của một số hệ thống sp, vì vậy hãy kiểm tra một số lệnh ở đầu, sau đó chạy tập lệnh. – ashubuntu
Tôi cố gắng chạy các kịch bản và không có gì có vẻ để làm việc cho tôi. Tuy nhiên tôi đã thấy rằng tôi có thể xóa các thuộc tính mở rộng bằng cách vào bảng của tôi/views trong Object Explorer
và đang làm gì để sau:
- Nhấp chuột phải vào Bảng/Quang cảnh trong Object Explorer, chọn Properties
- Chọn Thuộc tính mở rộng từ pane bên trái
- Chọn các thuộc tính mở rộng và nhấp vào Xóa ở góc dưới bên phải của cửa sổ
- 1. Truy vấn để thả tất cả các thuộc tính mở rộng có chứa một tên nhất định
- 2. Cập nhật NHibernate trên thuộc tính đơn cập nhật tất cả các thuộc tính trong sql
- 3. Thả tất cả các đối tượng trong cơ sở dữ liệu SQL Server thuộc về các lược đồ khác nhau?
- 4. Thuộc tính mở rộng jQuery
- 5. Xóa tất cả các thuộc tính
- 6. Cắt tất cả các thuộc tính chuỗi
- 7. Chọn thuộc tính tất cả XML trong SQL
- 8. Jquery Accordion Mở rộng Tất cả Thu gọn Tất cả
- 9. SQL Server tất cả các danh sách lỗi?
- 10. Tất cả các phiên SQL Server đó từ đâu?
- 11. Phản ánh trên tất cả các thuộc tính của giao diện, bao gồm cả các thuộc tính được kế thừa?
- 12. NSOutlineView - Tự động mở rộng tất cả các nút
- 13. CSS - Mở rộng thuộc tính lớp học
- 14. C# Mở rộng lớp bằng cách thêm các thuộc tính
- 15. Ember.js: Quan sát tất cả các thuộc tính đối tượng
- 16. Tìm đối chiếu không mặc định trên cột cho tất cả các bảng trong SQL Server
- 17. Tìm tất cả các lớp có thuộc tính cụ thể
- 18. jQuery nhận tất cả các thuộc tính HTML
- 19. Thả bảng trong Sql Server bằng Sql Server Management Studio
- 20. Đặt thuộc tính VerticalAlignment cho tất cả các điều khiển
- 21. Cách mở rộng tất cả các phần phụ trên thanh bên toctree trong Sphinx
- 22. Cách tìm tất cả các tệp có phần mở rộng nhất định trên Android?
- 23. Tìm tất cả các bước trong đường dẫn thuộc tính
- 24. Cách liệt kê tất cả các thuộc tính của lớp
- 25. Groovy Liệt kê tất cả các thuộc tính cho lớp
- 26. SQL Server 2008 xóa tất cả các bảng theo lược đồ đặc biệt
- 27. Bắt tất cả các thuộc tính (Bao gồm cả các thuộc tính ẩn) của 0 (Đối tượng gốc)
- 28. Tìm kiếm tất cả các bảng, tất cả các cột cho một giá trị cụ thể SQL Server
- 29. Nhận tất cả các thuộc tính đã đánh dấu một thuộc tính nhất định
- 30. Thả tất cả các bảng/chuỗi người dùng trong Oracle
hãy đánh dấu một câu trả lời như chấp nhận/đúng. Ít nhất 2 là chính xác. –