It's well known.Microsoft SQL Server是不允許在存儲過程或觸發器中使用USE數據庫語句來改變當前數據庫的。
怎麼辦呢?當然可以直接用[databasename].[user].[tablename]這樣來訪問,但是某些語句必須在當前數據庫下執行,比
如sp_adduser等。
這裡提供一個解決方案:
使用Exec(ute)語句來改變當前數據庫,不過要注意的是,數據庫環境的更改只在Execute語句結束前有效,所以你必須把
後面的語句和Execute放到一起。Example:
create proc test
as
exec('use pubs') exec sp_adduser 'test'
go
--Written by 怡紅公子@ChinaASP.com
--http://www.chinaASP.com
exec test