Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Apakah statistik yang mereferensikan kolom mencegah kolom itu dihapus?

Kode yang diusulkan dalam jawaban JNK tidak berfungsi, tetapi idenya bagus. Jika Anda ingin menghapus semua statistik yang dibuat pengguna, ini solusi yang saya uji:

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. Mengapa SQL Server 2008 memesan saat menggunakan GROUP BY dan tidak ada urutan yang ditentukan?

  2. UNTUK XML PATH dan rangkaian string

  3. Bagaimana Mengembalikan Database di Database server sql Server?

  4. Pemecahan Masalah Hibah Memori Variabel di SQL Server

  5. Arti tanda kurung siku [] dalam perancang tabel MS-SQL?