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
相关文档:
ORACLE数据库里表导入SQL Server数据库
1、在目的SQL Server数据库服务器上安装ORACLE Client软件或者ORACLE ODBC Driver.
在$ORACLE_HOME\network\admin\tnsnames.ora里配置ORACLE数据库的别名(service name)。
2、在WIN2000或者win200 ......
我经常碰到有人会问一些数据库优化方面的问题,我觉得这是一最基本技能要求,特别是使用sql server 2005,对于sql server的优化,使用的专职dba或兼职dba们工作更轻松,效率更高了,但是还是有很多新人可能不大了解,我在这儿写一下最基本的一些介绍。
一、首先介绍一下sql server 2005中优化数据时使用到的两个工 ......
/*当执行SQL时发现不能连接数据库,先重连一次*/
import java.io.FileInputStream;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
......
--> Title : SQL Server2005 Synonym的使用
--> Author : wufeng4552
--> Date : 2009-10-30
1.Synonym的概念
Synonym(同义词)是SQL Server 2005的新特性。可以简单的理解Synonym为其他對象的别名。
語法
CREATE SYNONYM [ schema_name_1. ] synonym_name FOR & ......
首先给出两张测试表
a(aid int, adata varchar(20)) b(bid int, bdata varchar(20))
1.join 与 inner join
执行如下语句:
select * from a join b on a.aid = b.bid;
我们会得到如下的结果:
AID ADAT ......