欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【SQL存储过程和触发不能使用USE的应对方法】,下面是详细的分享!
SQL存储过程和触发不能使用USE的应对方法
大家都知道在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 |
以上所分享的是关于SQL存储过程和触发不能使用USE的应对方法,下面是编辑为你推荐的有价值的用户互动:
相关问题:如何在SQL存储过程中处理错误
答:1. 建立一个过程,第一个语句 DECLARE EXIT HANDLER是用来处理异常的,意思是如果错误 1216发生,这个程序将会在错误记录表中插入一行, EXIT的意思是 当动作成功提交后推出这个复合语句。 create procedure p22(parameter int) begin declare e... >>详细
相关问题:SQL 中存储过程怎么使用?
答:sql存储过程及应用 一、简介: 存储过程(Stored Procedure), 是一组为了完成特定功能的SQL 语句,集经编译后 存储在数据库中,用户通过指定存储过程的名字并给出参数,如果该存储过程带有参数来执行 它, 在SQL Server 的系列版本中,存储过... >>详细
相关问题:怎么使用sql语句返回存储过程的内容
答:你可以将sp_helptext 放到 查询分析器里 工具--自定义 对应的CTRL+F1 後面,这样以後要看存储过程的内容就可以 选中存储过程的名称 同时按CTRL和F1键就可以了 >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
