在代码中拼接SQL命令与在存储过程中拼接的区别
一般说来在代码中拼接SQL命令,容易让别人钻空子玩SQL注入,
我看了有些存储过程的代码,发现在存储过程中也是对各参数进行拼接。
这好象与在代码中拼接没什么区别啊,难道在存储过程拼接就更安全?
譬如下面这个存储过程:
我看了有些存储过程的代码,发现在存储过程中也是对各参数进行拼接。
这好象与在代码中拼接没什么区别啊,难道在存储过程拼接就更安全?
譬如下面这个存储过程:
Create PROCEDURE [dbo].[ShowPage]
@tblName varchar(255), -- 表名
@strGetFields varchar(1000) = ''*'', -- 需要返回的列
@strOrder varchar(255)='''', -- 排序的字段名
@PageSize int = 10, -- 页尺寸
@PageIndex int = 1, -- 页码
@strWhere varchar(1500) = '''' -- 查询条件 (注意: 不要加 where)
AS
declare @strSQL varchar(5000)
if @strWhere !=''''
set @strWhere='' where ''+@strWhere
set @strSQL=''Select * FROM (Select ROW_NUMBER() OVER (''+@strOrder+'') AS pos,''+@strGetFields+'' FROM [''+@tblName+'']''+@strWhere+'') AS sp Where pos BETWEEN ''+str((@PageIndex-1)*@PageSize+1)+'' AND ''+str(@PageIndex*@PageSize)
本文转摘自『蓝派网』http://www.lan27.com/Article/200810/8986.htm
...全文
相关推荐
SQL Server EXEC和sp_executesql的区别
### SQL Server EXEC与sp_executesql的区别详解#### 一、引言在SQL Server中,执行动态SQL或存储过程时,开发人员通常面临选择使用`EXEC`还是`sp_executesql
SQLServer:探讨EXEC与sp_executesql的区别详解
这篇文章将详细解析这两个命令的用途、优缺点以及如何选择适合的使用场景。首先,`EXEC` 命令主要用于执行存储过程或动态SQL。
SqlServer存储过程实现及拼接sql的注意点
在本文中,我们将深入探讨如何在SQL Server中创建存储过程以及在拼接SQL语句时需要注意的关键点。
sql\(很长的l模糊查询拼接)sql存储过程
#### 标题解读:“SQL(很长的L模糊查询拼接)SQL存储过程”标题中的“SQL(很长的L模糊查询拼接)”意味着该存储过程主要涉及的是通过字符串拼接的方式动态构建SQL查询语句,这里的“L”可能是指
存储过程拼接字符串
在编写存储过程时,根据所使用的数据库系统选择适当的方法进行字符串拼接是非常重要的。理解这些功能可以帮助我们更有效地构造动态SQL,提高代码的可读性和维护性。


疑难问题
