易截截图软件、单文件、免安装、纯绿色、仅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 Server 认证(Certification)

微软的数据库认证从包括3个方面的:
MCTS: Microsoft Certified Technology Specialist
MCITP: Microsoft Certified IT Professional
MCM: Microfot Certified Master.
 微软建议参加最新版本的数据库认证考试,当前版本是指Microsoft SQL Server 2008。
SQL Server2008 MCTS包括3个认证:
1> SQL Server 200 ......

sql server

exec sp_spaceused [[@objname=]'objname'][,[@updateusage=]'updateusage']
检查数据库空间大小
 dbcc   showfilestats
统计数据文件的使用情况
 dbcc   showcontig
检查数据库控件分配情况
 dbcc   sqlperf(logspace)
查看日志文件的使用情况 ......

SQLite不支持的SQL语法总结


1 TOP
这是一个大家经常问到的问题,例如在SQLSERVER中可以使用如下语句来取得记录集中的前十条记录:
SELECT TOP 10 * from [index] ORDER BY indexid DESC;
但是这条SQL语句在SQLite中是无法执行的,应该改为:
SELECT * from [index] ORDER BY indexid DESC limit 0,10;
其中limit 0,10表示从第0条记录开始,往后 ......

SQL Server2000 解析XML

DECLARE @HDOC INT --文档句柄
DECLARE @XMLSTRING VARCHAR(200) --XML字符串
SET @xmlString ='<?xml version="1.0"?>
<ROOT>
<USER ID="1" Name="SBQCEL"/>
<USER ID="2" Name="PEACELI"/>
<USER ID="3" Name="SHEEPCHANG"/>
</ROOT>'
--使用系统存储 ......

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

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