范文无忧网范文学习范文大全

求动态SQL基本语法

04月17日 编辑 fanwen51.com

[求:财会基本知识]从学基础理论入手. 姐!你一定可以的,虽然你不是财会专业的,但只要你想学习财会,并且用心去学习,就能学好的。开始学习时应该从基础理论开始,专业课程有计算技术、基础会计、财务会...+阅读

求动态SQL基本语法

1.什么时候用+号?

为了组成一个字符串类型的语句,要用+号作连接符。

一般情况下,字符串与字符串变量连接时才用加号。

DECLARE SQL NVARCHAR(1000),tablename nvarchar(100),SORTFIELD NVARCHAR(100)

SELECT TABLENAME=N'MYTABLE',SORTFIELD=N'USERCODE'

SET SQL=N'SELECT * from '+tablename+N' order by '+FIELDSORT '

这样的组成的SQL语句是:

SELECT * from MYTABLE order by USERCODE

2.什么时候用引号:

常数字符串都要用引号,如上面例子的N'SELECT * FROM '

3.什么时候用空格:

一般连接关键字的引号内侧要加一空格,如:

N'SELECT * from '+tablename

FROM 后面要加空格,否则连接后会成为:

SELECT * FROMMYTABLE

FROM 和MYTABLE连起来了,从而出错。

4.其它要注意的:生成后字串中有引号的语句。

比如要生成这样一个语句

SELECT * FROM MYTABLE WHERE USERCODE=''

这样写是不对的:

SET SQL=N'SELECT * from '+tablename+' WHERE USERCODE='' '

这样才是对的:

SET SQL=N'SELECT * from '+tablename+' WHERE USERCODE=N'''' '

可以看出:

在字串中间的两个引号变成了4个。

总结一下:

语句中间需要显示出的引号,引号个数要加倍。

======这么麻烦,加点分啦!

动态SQL语句的insert

你原来错误是

消息 8178,级别 16,状态 1,第 1 行

参数化查询 '( a int ,b varchar(80) ,c int,d varchar(80))insert into A (c' 需要参数 'a',但未提供该参数。

declare newid nvarchar(50)

select newid=NEWID()

exec sp_executesql N'insert into A (col1,col2,col3,col4) values (a,b,c,d) ',N' a int ,b varchar(80) ,c int,d varchar(80)',0,'测试',0,newid

在Sql Server 2008 R2已经成功插入.

如何使用动态SQL语句

SQL文本在编译时是未知的。

例如,SELECT语句包含的标识符(如表名)在编译时是未知的,或者WHERE子句的条件数量在编译时是未知。

静态SQL不支持

例如,在PL/SQL中用静态SQL只能执行查询以及DML语句。如果想要执行DDL语句,只能使用动态SQL。

当让使用静态SQL,也有它的好处:

编译成功验证了静态SQL语句引用有效的数据库对象和访问这些对象的权限

编译成功创建了模式对象的依赖关系

动态SQL语句是一个最多只能返回一行的SELECT语句

使用动态SQL语句返回单列,查询SCOTT的薪水:

declare

v_sql_text varchar2(1000);

v_sal number;

v_ename emp.ename%type := 'SCOTT';

begin

v_sql_text := 'select e.sal from emp e where e.ename = :ename';

execute immediate v_sql_text

into v_sal

using v_ename;

dbms_output.put_line(v_ename || ':' || v_sal);

end;

使用动态SQL返回一条记录,查询SCOTT的基本信息:

declare

v_sql_text varchar2(1000);

v_ename emp.ename%type := 'SCOTT';

vrt_emp emp%rowtype;

begin

v_sql_text := 'select * from emp e where e.ename = :ename';

execute immediate v_sql_text

into vrt_emp

using v_ename;

dbms_output.put_line(v_ename || '的基本信息:');

dbms_output.put_line('工号:' || vrt_emp.empno);

dbms_output.put_line('工资:' || vrt_emp.sal);

dbms_output.put_line('入职日期:' || vrt_emp.hiredate);

end;

延伸阅读:

急求对外汉语教学中程度补语这个语法的讲解要点!最好多程度补语:程度补语表示述语所达到的程度或状态。程度补语没有否定形式。 一、充当程度补语的词主要有两类: 1、表示程度很高的“极”、“很”、“透”、“慌”、“死”、“坏...

求SQL数据库论文ORACLE中SQL查询优化研究 摘 要 数据库性能问题一直是决策者及技术人员共同关注的焦点,影响数据库性能的一个重要因素就是SQL查询语句的低效率。论文首先分析了导致SQL查询语...

小学英语语法一般疑问句最基本的变法有哪些1、一般疑问句最基本的变法:be 提前 用问号 读升调 2、my变成your our变成your I am / We are 变Are you I can 变Can you 3、注意人名不论放在什么位置都要大写 Tom is a st...

求英语语法解析选a 这里如果把空去掉是一个完整的句子,所以可以推断这里的空是作为定语的(判断一个句子或一个词是不是定语只要去掉这个空看是否是一个完整的句子,即主谓宾语是否都在,如果句子...

求英文翻译一段道歉信要求语法准确!No matter what I did, please forget them. Because The moment I do not stop loving you! It is because I love you, done careless mistakes! I will always love to h...

求腰部肌肉的康复锻炼的方法最好有动态图片的求腰部肌肉的康复锻炼的方法最好有动态图片的,怎样锻炼腹肌跟胸肌:1.腰部前屈后伸运动 两足分开与肩同宽站立,双手叉腰,做好预备姿势。然后做腰部前屈和后伸动作,尽量扩大动作范...

求一些英语语法公式!求一些英语语法公式!关于一些语法的公式:一:the后面可接: 1:特指 2:the+adj./adv.的最高级。(adj./adv后接est或一些不规则变换) 3:世界上唯一的,如:the sun。 4:某一家人,如:the Toms+ar...

求高考英语口试基本用语求高考英语口试基本用语,如何在6个月内掌握英语基本口语:普通人人对话英语口试功略 1.开始:用最甜美的嗓音讲英语,让老师加印象分。 2.短文阅读:咬字清晰,语速中等,不必读完全文。...

急求现在最新的科技动态急求现在最新的科技动态,国内和当今世界的科技动态和科技信息:信息科学技术的范围太宽了,最新的研究是日本在做的概念中的网络,超高速的。 生物最新的科技应该是器官培植啊,也叫...

推荐阅读
图文推荐
栏目列表