首页 | 源码下载 | 网站模板 | 网页特效 | 广告代码 | 网页素材 | 字体下载 | 书库 | 站长工具
会员投稿 投稿指南 RSS订阅
当前位置:主页>网络编程>SQL server>资讯:SQL存储时触发不能使用USE怎么办?

SQL存储时触发不能使用USE怎么办?

www.jz123.cn  2011-04-27   来源:   站长家园    责任编辑(袁袁)    我要投递新闻

  大家都知道在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 研究- Common Table Expression 下一篇:SQL Server如何保证可空字段中非空值唯一

评论总数:0 [ 查看全部 ] 网友评论


关于我们隐私版权广告服务友情链接联系我们网站地图