在存儲(chǔ)過(guò)程中使用use database
發(fā)布時(shí)間:2008-07-12 閱讀數(shù): 次 來(lái)源:網(wǎng)樂(lè)原科技
It's well known.Microsoft SQL Server是不允許在存儲(chǔ)過(guò)程或觸發(fā)器中使用USE數(shù)據(jù)庫(kù)語(yǔ)句來(lái)改變當(dāng)前數(shù)據(jù)庫(kù)的。
怎么辦呢?當(dāng)然可以直接用[databasename].[user].[tablename]這樣來(lái)訪問(wèn),但是某些語(yǔ)句必須在當(dāng)前數(shù)據(jù)庫(kù)下執(zhí)行,比
如sp_adduser等。
這里提供一個(gè)解決方案:
使用Exec(ute)語(yǔ)句來(lái)改變當(dāng)前數(shù)據(jù)庫(kù),不過(guò)要注意的是,數(shù)據(jù)庫(kù)環(huán)境的更改只在Execute語(yǔ)句結(jié)束前有效,所以你必須把
后面的語(yǔ)句和Execute放到一起。Example:
create proc test
as
exec('use pubs') exec sp_adduser 'test'
go
--Written by 怡紅公子@ChinaASP.com
--http://www.chinaasp.com
exec test