关于动态sql语句
来源:互联网 发布:python算术运算符 编辑:程序博客网 时间:2024/05/29 23:22
由于C、C++是编译型的语言,所以如果你想在运行时指定某些代码,比如说你想读取一个文本文件并执行其中的内容,比如从文件中读到"printf("hello world!");"就打印“hello world!”,这在编译型的语言中是不可能直接做到的,但解释型语言就有可能,TSQL和PLSQL都是解释型的语言,他们都提供了这样的功能,当然,这种动态执行的功能大部分情况都是用在存储过程中,下面是一个简单的例子。
CREATE PROCEDURE dbo.sp_readtable
@strresult varchar(100) output,
@tbname varchar(20)
AS
BEGIN
if exists (select * from sysobjects where name = @tbname and xtype='U')//判断表名是不是存在
begin
exec ('select * from ' + @tbname)
select @strresult = 'Task completed!'
end
else
begin
select @strresult = 'Incorrect table name'
end
END
这个存储过程是工作在SQL SERVER下的,作用很简单,就是任意提供一个表名,返回它的所有记录,@tbname是表名的输入参数,@strresult是工作结果的输出参数
在实际工作过程中,有很多比较复杂的DB操作,用一般的JOIN和UNION操作不可能完成任务,当然我们也可以将任务分拆开来,在CLIENT端一步一步的做,但在某些情况下,比如说工作的中间结果集非常巨大而且次数很多,而真正的最终数据却很小,如果将逻辑全部放在CLIENT断,会带给CLIENT和DATABASE之间很大的传输压力,在这种情况下,存储过程就体现了它的性能优势,由于逻辑比较复杂,在存储过程将可能不可避免的用到临时表和各种组合查询,而在某些情况下,组合查询的最终执行算法并不是最优算法(因为DATABASE的算法分析要包容所有的情况),特别是用IN做为范围条件时,在这种条件下,使用动态SQL代替组合查询,往往能很大地提高性能。
- 关于动态sql语句
- 动态sql语句关于select的
- 关于Navicat的动态生成SQL语句
- 关于mybatis动态SQL语句的写法
- 关于SQL语句的占位符使用及动态SQL
- Mybatis:关于动态生成sql语句的一些问题
- 关于SQL中 动态执行SQL语句并且获得动态SQL语句输出参数值的问题
- 动态SQL语句
- 动态SQL语句
- 调试动态SQL语句
- 动态生成sql语句
- mysql动态sql语句
- 动态SQL语句
- 动态SQL语句
- PB动态SQL语句
- 动态SQL语句处理
- 动态生成SQL语句
- 应用动态SQL语句
- 程序员良性循环工作模式
- FOJ 1174 Dice Stacking
- ASP.NET网站全文检索
- 也谈缺陷跟踪管理
- System.getProperty()参数大全
- 关于动态sql语句
- 根据名称取得存储过程(或函數)的内容
- Delphi API HOOK完全说明(存在错误的原文,含修正)
- 边缘检测VS梯度图像
- cookie概述---js读取删除设置Cookie
- XML知识2--DTD
- C# Infralution Licensing System学习笔记(三)用户自定义控件Licensing应用
- .NET牛人应该知道些什么?
- Oracle 游标使用大全