程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> SQL存儲過程和觸發不能使用USE的應對方法

SQL存儲過程和觸發不能使用USE的應對方法

編輯:關於MYSQL數據庫

大家都知道在SQL的存儲過程,觸發中不能使用USE。

怎麼辦呢,當然可以直接用[databasename].[user].[tablename]這樣來訪問,但是某些語句必須在當前數據庫下執行,比

如sp_adduser等。

之前看到一篇文章,我測試了有問題。

原文:

這裡提供一個解決方案:

使用Exec(ute)語句來改變當前數據庫,不過要注意的是,數據庫環境的更改只在Execute語句結束前有效,所以你必須把

後面的語句和Execute放到一起。Example:

以下為引用的內容:
create proc test

as

exec('use pubs') exec sp_adduser 'test'

go

exec test
 


我自己試了一下,根據下面的語句執行沒有問題:

使用Exec(ute)語句來改變當前數據庫。

如下:

CREATE PROCEDURE cs

AS

以下為引用的內容:
BEGIN

exec('use sjdbmis; select plucode from txtplu')

END

GO
 


又如:

以下為引用的內容:
CREATE PROCEDURE cs

AS

BEGIN

exec('use sjdbmis; exec sp_adduser ''test''')

END

GO

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved