唐山网站建设

设为主页 加入收藏 繁體中文

SQL存储进程和触发不能使用USE的应对方法

核心提示:大家都知道在SQL的存储进程,触发中不能使用USE...

大家都知道在SQL的存储进程,触发中不能使用USE。

怎样办呢,固然可以直接用[databasename].[user].[tablename]这样来访问,但是某些语句必须在当前数据库下履行,比

如sp_adduser等。

之前看到1篇文章,我测试了有题目。

原文:

这里提供1个解决方案:

使用Exec(ute)语句来改变当前数据库,不过要留意的是,数据库环境的更改只在Execute语句结束前有效,所以你必须把

后面的语句和Execute放到1起。Example:

以下为援用的内容:

create proc test

as

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

go

exec test

我自己试了1下,根据下面的语句履行没有题目:

使用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

唐山网站建设www.fw8.net
TAG:数据库,内容,进程,题目,语句
评论加载中...
内容:
评论者: 验证码: