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

Các số liệu thống kê tham chiếu đến một cột có ngăn cột đó bị bỏ không?

Mã được đề xuất trong câu trả lời JNK không hoạt động, nhưng ý tưởng là tốt. Nếu bạn muốn xóa tất cả thống kê do người dùng tạo, đây là giải pháp đã được thử nghiệm của tôi:

DECLARE @sql NVARCHAR(MAX)

DECLARE statCursor CURSOR FOR 
SELECT 
    'DROP STATISTICS ' + QUOTENAME(SCHEMA_NAME(t.schema_id)) 
                        + '.' + QUOTENAME(t.name) 
                        + '.' + QUOTENAME(st.name) AS sql
FROM
    sys.stats AS st 
    INNER JOIN sys.tables AS t
        ON st.object_id = t.object_id
WHERE
    st.user_created = 1
ORDER BY 1;

OPEN statCursor;

FETCH NEXT FROM statCursor INTO @sql
WHILE @@FETCH_STATUS = 0  
BEGIN  
    PRINT @sql
    EXEC sp_executesql @sql
    FETCH NEXT FROM statCursor INTO @sql
END  
CLOSE statCursor  
DEALLOCATE statCursor


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao insert trigger được gọi khi không có dữ liệu để chèn?

  2. Chọn cùng một tên cột trong máy chủ sql của microsoft từ nhiều bảng

  3. chuỗi tương đương với Sum để nối

  4. SQL Server có đảm bảo việc chèn tuần tự cột nhận dạng không?

  5. Truy vấn sử dụng bảng dẫn xuất với ISNUMERIC dẫn đến chuyển đổi không thành công (varchar thành int)