网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > SQL技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.一些工作和学习中经常用到的"SQL.
.SQL server 危险存储过程删除与恢.
.sql server 2000 游标用法小例.
.深入浅出SQL教程之Group by和Hav.
.ERP管理软件数据库系统的几种设计.
.SQL Server编写存储过程小工具(二.
.一位DBA总结的数据库反规范设计常.
.SQL2005生成SQL2000脚本的一些解.
.全面解析关系数据模型存在的不足.
.Microsoft数据平台开发与SQL Ser.
.优化数据库的思想及sql语句优化的.
.简化SQL语句一例.
.通过数据仓库来实现少花钱多办事.
.如何获取SQL Server数据库里表的.
.sql server 查询分析器快捷键集合.
.讲解DBA在系统设计和开发中的工作.
.SQL 在什么情况下使用全表扫描 .
.SQL Prompt:SQL智能完成工具!.
.最简单的SQL Server数据库存储过.
.解决sqlsever日志备份错误的方法 .

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

发表日期:2008-8-15


大家都知道在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 Server安装sp4补丁报错的解决方法 人气:1419
下一篇:根据一定原则自动生成序列号的具体示例 人气:866
浏览全部存储过程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐