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 |
TAG:数据库,内容,进程,题目,语句
评论加载中...
|
上一篇: 如何在MySQL查询结果集中得到记录行号
下一篇: JFS 文件系统概述及布局分析(5)