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

SQl的execute 与sp_executesql 

SQL语句类似string.Format()组装变量的使用。
一般来说,我们会在程序运行期间将所要运行的命令语句组合成一个字符串,然后使用EXECUTE命令或系统存储过程
@0sp_executesql来运行。今天,我们将来详细探讨这两种方法各自的优劣点。
(一) 使用EXECUTE命令运行命令字符串
要使用EXECUTE命令来运行一个命令字符串的语法如下:
EXEC[UTE] ({@string_variable|[N] 'stql_string'} [+...n])
从语法看出,可以先将包含所要运行的命令的字符串赋给一个局部变量@string_variable,再使用EXECUTE命令来运行,或是直接使用EXECUTE命令去运行一个包含所要运行的命令语句的字符串。此外,您也可以将多个包含所要运行的命令语句的字符串相加在一起,再交给EXECUTE命令来一次运行。
在使用EXECUTE命令时必须注意以下几点:
a、在EXECUTE命令中必须将命令字符串包含在一对小括号中;
b、局部变量@string_variable可以是数据类型char、varchar、nchar或nvarchar。如果您在'stql_string'之前加上了
大写的N,此时该字符串将被解释为nvarchar数据类型;
交给EXECUTE命令运行的命令字符串必须全部是由字符数据组成,也就是说您必须自行将所有的数值数据转换成字符数据;
d、EXECUTE命令允许以嵌套方式使用;
e、EXECUTE命令可以使用前四个字符的缩写方式,即EXECUTE与EXEC都是正确的写法。
举例如下:
declare @DBName varchar(20),
@Tbname varchar(20),
@SQLString1 varchar(100),
@SQLString2 varchar(100)
set @DBName='Northwind'
set @Tbname='Customers'
组合出所需要的命令字符串
set @SQLString1='USE'+@DBName+char(13) --char(13)换行
组合出所需要的命令字符串
set @SQLString2='select * from'+@Tbname
将命令字符串包含在一对小括号中后交给EXEC命令运行
exec(@SQLString1+@SQLString2)
(二) 使用系统存储过程sp_executesql运行Unicode命令字符串
语法如下:
sp_executesql [@stmt=] stmt
{,[@params=]N'@parameter_namedata_type [,...n]'}
{,[@param1=] 'value' [,...n]}
 
说明:必须先将各个包含所要运行的命令语句的Unicode字符串相加在一起,再交给系统存储过程sp_executesql来运行,而不能在sp_executesql的语句中来相加各个命令字符串。
举例如下:
declare @DBName nvarchar(20),
@Tbname nvarchar(20),
@SQLString nvarchar(500)
set @DBName=N'Northwind'
set @Tbname=N'Customers'
set @SQLString


相关文档:

防止SQL注入

一、使用参数化输入。存储过程里尽量避免语句拼接。
二、对于一些数据库,必须设置权限,甚至设置到字段。
三、始终通过测试类型、长度、格式和范围来验证用户输入。
四、过滤敏感字符。
Function ReplaceStr(Str)
Str=Trim(Str)
Str=Replace(Str,"'","'")
Str=Replace(Str,";",";")
Str=Rep ......

[转]SQL截取字符串

SUBSTRING
返回字符、binary、text      或      image      表达式的一部分。有关可与该函数一起使用的有效      Microsoft®      SQL      Server ......

sql存储过程语法

 
一.注释
  -- 单行注释,从这到本行结束为注释sql 语法,类似C++,c#中//
  /* … */ 多行注释,类似C++,C#中/* … */

二.变量(int, smallint, tinyint, decimal,float,real, money ,smallmoneysql 语法, text ,image, char, varchar。。。。。。)
语法:
DECLARE
&nb ......

PL/SQL开发

bulk collect是可以看做是一种批获取的方式,在我们的plsql的代码段里经常作为into的扩展来使用。对于select id into v from .... 是一个常用的用法。不过这里只能是返回单条记录的时候,才能使用,如果是有多条记录我们就不能用这样的方式,而是使用fetch和循环的方式,不仅使用麻烦,而且性能也底下,这时我们的bulk coll ......

SQL Server中的Null值解析

NULL
是数据库中特有的数据类型,当一条记录的某个列为
NULL
,则表示这个列的值是未知的、是不确定的。既然是未知的,就有无数种的可能性。因此,
NULL
并不是一个确定的值。
这是
NULL
的由来、也是
NULL
的基础,所有和
NULL
相关的操作的结果都可以从
NULL
的概念推导出来。
判断一个字段是否为
NULL
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号