MSSQL网页编程之静态SQL语句
为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。静态|语句1:
一般SQL语句能够用Exec实行
eg:Select*fromtableName
Exec(select*fromtableName)
sp_executesqlNselect*fromtableName--请注重字符串前必定要加N
2:
字段名,表名,数据库名之类作为变量时,必需用静态SQL
eg:
declare@fnamevarchar(20)
set@fname=
Select@fnamefromsysobjects--毛病
Exec(select+@fname+fromsysobjects)--请注重加号前后的单引号的边上要加空格
execsp_executesqlNselect+@fname+fromsysobjects
固然将字符串改成变量的情势也可
declare@svarchar(1000)
set@s=select+@fname+fromsysobjects
Exec(@s)--乐成
execsp_executesql@s--此句会报错
declare@sNvarchar(1000)--注重此处改成nvarchar(1000)
set@s=select+@fname+fromsysobjects
Exec(@s)--乐成
execsp_executesql@s--此句准确,
3:输入参数
eg:
declare@num,
@sqls
set@sqls=selectcount(*)from+@servername+.a.dbo.b
exec(@sqls)
我怎样能将exec实行的了局存进变量@num中
declare@numint,
@sqlsnvarchar(4000)
set@sqls=select@a=count(*)from+@servername+.a.dbo.b
execsp_executesql@sqls,N@aintoutput,@numoutput
select@num
这类操作的执行过程是,1)按照新的表定义建立一个临时表tmpa,2)将原表数据拷贝到临时表,3)将原始表改名tmpb,4)将tmpa改名为原表名,5)将tmpb删除。 是要和操作系统进行Socket通讯的场景。否则建议慎重! 一个是把SQL语句写到客户端,可以使用DataSet进行加工; 两个月啃那本sqlserver2005技术内部-存储引擎,花了几个月啃四本书 sqlserver的痛苦之处在于有用文档的匮乏,很多只是表明的东西 这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。 having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。 其中最有名的应该是row_number了。这个终于解决了用临时表生成序列号的历史,而且SQLServer2005的row_number比Oracle的更先进。因为它把Orderby集成到了一起,不用像Oracle那样还要用子查询进行封装。 在select语句中可以使用groupby子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。
页:
[1]