今天在調試Sql Server的存儲過程時, 遇到sql Server 報這個錯誤:
Internal Query Processor Error: The query processor encountered an unexpected error during execution
錯誤的地方是很簡單的select語句。
select top 0 * into [CPMS_ARCHIVE].[dbo].[cpms_ad_click] from [CPMS].[dbo].[cpms_ad_click];
單獨拿出這條語句執行也報上述的錯誤,但是非常奇怪的是隻要將這條語句略微修改,比如去掉一兩個中括號就不報錯誤。
經過反覆調試,發現錯誤的原因原來是在存儲過程中加入了創建數據庫的語句。
在存儲過程中創建的數據庫是無法在同一個存儲過程中創建表,寫入數據,或是執行其他非常簡單的操作的。
因此,在寫存儲過程的時候要注意的是,不要臨時創建數據庫, 要事先創建好數據庫, 不然會遇到無法解析的錯誤。