如果直接在語法裡使用
SELECT TOP @t foo FROM footb
會產生錯誤 "接近 '@t' 之處的語法不正確。"
在變數加個神奇的小括就可以了

丫烈客 發表在 痞客邦 留言(0) 人氣()

DECLARE MY_CURSOR Cursor FOR
    SELECT name FROM sys.databases
    where name not in ('master','tempdb','model','msdb') --開啟cursor
Open MY_CURSOR
--定義cursor裡要取出的物件
DECLARE @name VARCHAR(100) --進入cursor
Fetch NEXT FROM MY_CURSOR INTO @name
--當陳述式失敗,或資料列超出結果集時停止迴圈
    While (@@FETCH_STATUS <> -1)
    BEGIN
--偵錯或加入要應用的程式碼
    exec ('USE [master]   
    backup log '+@name+' with truncate_only
    dbcc shrinkdatabase ('+@name+',1024)
    declare @logName VARCHAR(100)
    USE ['+@name+']                        
    set    @logName=(select name from sysfiles where status & 0x40 = 0x40)
    dbcc shrinkfile (@logName,10) ')         --再到下個指標去
        FETCH NEXT FROM MY_CURSOR INTO @name
    END
--關閉cursor
CLOSE MY_CURSOR
--釋放cursor
DEALLOCATE MY_CURSOR

丫烈客 發表在 痞客邦 留言(0) 人氣()

1
Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。