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

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

怎麽辦呢,當然可以直接用[databasename].[user].

如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

 
查看SQL SERVER 加密存儲過程,函數,觸發器,視圖
create PROCEDURE sp_decrypt(@objectname varchar(50))ASbeginset nocount on--CSDN:j9988 copyright:2004.07.15 --V3.2 --破解字節不受限制,適用于SQLSERVER2000存儲過程,函數,視圖,觸發器--修正上一版"視圖...查看完整版>>查看SQL SERVER 加密存儲過程,函數,觸發器,視圖
 
Delphi、MS SQL Server開發環境下存儲過程的使用
曹次華一、概述Delphi + MS SQL Server是目前最爲流行的管理信息系統開發環境和工具。Delphi的強大數據庫操作控件極大地減輕了開發人員的工作量,在這些控件中,最常用的有TQuery、TTable、TADOQuery、TADOTable、TA...查看完整版>>Delphi、MS SQL Server開發環境下存儲過程的使用
 
一種通過sql server的作業調度+存儲過程來建立自動備份的方法
1.在要備份的數據上建立以下存儲過程: CREATE PROCEDURE .[過程名] ASdeclare @filename nvarchar(100),--文件名 @NowDay int --設置時間 set @filename='F:\JXXdata'+cast(Day(GetDate()) as varchar(2))+'.da...查看完整版>>一種通過sql server的作業調度+存儲過程來建立自動備份的方法