易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL中获得EXEC后面的sql语句或返回值的方法

SQL中获得EXEC后面的sql语句或返回值的方法
前言:在数据库程序开发的过程中,我勱们经常会碰到学习利用EXEC来执行一段需要返回某些值的sql语句(通常是构造动态sql语句时使用),或者在一个HTML存储过程中利用EXEC调用另一个HTML有返回值的存储过程(必须获得返回值),那么如何获得这些返回值呢?
1.EXEC执行sql语句的情况
declare @rsql varchar(250)
declare @csql varchar(300)
declare @rc nvarchar(500)
declare @cstucount int
declare @ccount int
set @rsql='(select Classroom_id from EA_RoomTime where zc='+@zc+' and xq='+@xq+' and T'+@time+'=''否'') and ClassroomType=''1'''
--exec(@rsql)
set @csql='select @a=sum(teststucount),@b=sum(classcount) from EA_ClassRoom where classroom_id in '
set @rc=@csql+@rsql
exec sp_executesql @rc,N'@a int output,@b int output',@cstucount output,@ccount output--将exec的结果放入变量中的做法
--select @csql+@rsql
--select @cstucount
上面的@rc这个HTMLsql语句的功能是找出特定时间段里所有有空的教室数量以及这些教室所能容纳的学生人数,因为涉及到学习动态的sql语句(@csql这句里条件中有一个HTML列名是动态变化的)的构造,所以要放在exec里执行,但是同时我勱又要返回2个HTML结果,所以执行时的代码为:
exec sp_executesql @rc,N'@a int output,@b int output',@cstucount output,@ccount output--将exec的结果放入变量中的做法
这样就将返回值放到学习了,@cstucount,@ccount两个HTML变量中,得到学习了我勱们想要的结果。
2.exec执行带返回值的存储过程的情况
我勱们来看一个HTML简单的存储过程:
create procedure ProTest
(
@name varchar(10),
@money int output
)
as
begin
if(@name='1')
set @money=1000
else
set @money=2000
end
这个HTML只是一个HTML简单的示例,这个HTML存储过程返回的是@money 这个HTML参数的值,那么当我勱们在另外一个HTML存储过程中调用此存储过程的时候如何获取这个HTML参数呢,方法如下:
declare @m int ---用来接收返回值的变量
exec ProTest @name='1',@money=@m output --一定要注名是output
就这么简单,我勱们就获得了返回值。
 


相关文档:

安装SQL Sever 2008时 错误代码: 1605 的解决方法


TITLE: SQL Server 安装程序失败。
------------------------------
SQL Server 安装程序遇到以下错误:
MsiGetProductInfo 无法检索 Product Code 为“{95120000-00B9-0409-0000-0000000FF1CE}”的包的 ProductVersion。错误代码: 1605。。
遇到这个错误时,解决方法如下:
当系统提示如 {95120000-0 ......

sql 大量数据查询的 优化措施

看到的一篇关于数据库优化的文章,觉得对自己有帮助,就转帖到这里。温故而知新!    
    
  优化数据库的思想及SQL语句优化的原则   [转贴   2005-08-18   14:20:05   ]   发表者:   chilizy        
    ......

使用PL/SQL Developer工具导入excel和导出excel

导出:
1.执行
select 语句查询出需要导出的数据.
2.在数据列表中右键,选择save
results.保存为.csv文件,然后已excel方式打开就OK了.可以另存为xsl。需要注意的是如果列内容是纯数字
的话,导出时会自动把前面的0去掉,想要导出完整的列内容,最好这列的内容拼一个字符如:select  ‘#’||Column from ......

sql查询语句中 in和 exists的区别与性能比较

对In和exists的性能进行比较,首先要知道它们两者的区别。
in: 确定给定的值是否与子查询中的值或列表中的值相匹配。
exists: 指定一个子查询,检测行是否存在。
可分析它们的查询语句来得出真实的差别:
in
比如Select * from t1 where x in ( select y from t2 )
执行的过程相当于:
select *
  from t1, ( ......

防止SQL注入攻击的注意事项

防止SQL注入攻击的注意事项
一. SQL Injection及其防范的基本知识
可能大家都知道,SQL注入主要是利用字符型参数输入的检查漏洞。
比如说,程序中有这样的查询:
 string sql = "SELECT * from SiteUsers WHERE UserName='" + userName + "'";
其中的userName参数是从用户界面上输入的。
如果是正常的输入,比如 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号