sql >> データベース >  >> RDS >> Sqlserver

列を参照する統計は、その列が削除されるのを防ぎますか?

    JNKの回答で提案されたコードは機能しませんが、アイデアは良いです。ユーザーが作成したすべての統計を削除したい場合は、この私のテスト済みソリューション:

    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. 列のデータ型をbigintからuniqueidentifierに変更します

    2. Cloud9 + rails+Postgresqlの使用法

    3. 行データを別々の行に分割するCSVファイル

    4. MySQLストアドプロシージャがSELECTで機能しない(基本的な質問)