随笔分类 -  数据库技术

上一页 1 2 3 4 下一页
ABAP OPEN SQL 模糊查询的方法
摘要:SAP模糊查询的方法: 其中 MAKTX_TXT 为传进来的参数*声明一个变量DATA: MAKTX_EXP LIKE MAKT-MAKTX.*拼接%%CONCATENATE '%'MAKTX_TXT'%' INTO MAKTX_EXP.*用like查询SELECT * FROM MAKT INTO CORRESPONDING FIELDS OF TABLE MAKT_TAB WHERE MAKTX like MAKTX_EXP.ENDFUNCTION. 阅读全文
posted @ 2012-04-26 11:41 babyblue 阅读(5344) 评论(0) 推荐(0)
SY-SUBRC含义
摘要:使用SELECT语句选择查询:SY-SUBRC = 0: 至少有一行数据,当ENDSELECT语句执行完,SY-DBCNT中保存着记录的个数。SY-SUBRC = 4: 没有数据。SY-SUBRC = 8: 只有使用“SELECT SINGLE FOR UPDATE”时才会有, 表示: WHERE条件指定的记录不止一行,结果是没有记录被选中。使用INSERT语句,向表中插入一行,必须注意INSERT的顺序与表中字段的顺序一致:SY-SUBRC = 0: 插入成功,SY-DBCNT包含了插入的行数,0或1。SY-SUBRC = 4: 由于有相同的KEY存在,所以插入失败。使用LOOP语句来遍历. 阅读全文
posted @ 2012-04-26 08:45 babyblue 阅读(189) 评论(0) 推荐(0)
SQL SERVER游标应用一个优化设想
摘要:在用游标的时候,如果待循环的数据非常多,或者则说游标基数非常大的话,可以采用 while((select COUNT(1) from t_enter_mh_info where em_state =0) >0 ) begin declare emi scroll cursor for select top 100 emi_id,em_numberfrom t_enter_mh_info where em_state =0 .................... 逻辑代码................. 每次昨晚一次循环 都要把对应的em_state标记为1,close emideal 阅读全文
posted @ 2012-04-23 10:27 babyblue 阅读(101) 评论(0) 推荐(0)
关于:警告: 聚合或其他 SET 操作消除了空值。 ”
摘要:。create table tb ( id int, num int ) insert into tb select 1,10 insert into tb select 1,20 insert into tb select 2,80 insert into tb select 2,null select id,sum(num) from tb group by id id ----------- ----------- 1 30 2 80 (所影响的行数为 2 行) 警告: 聚合或其它 SET 操作消除了空值。 分析:聚合函数无法对null值进行运算,所以会忽略 这个提示仅仅是警告,就是告诉 阅读全文
posted @ 2012-04-19 08:08 babyblue 阅读(205) 评论(0) 推荐(0)
ABAP中表连接的语法
摘要:SELECT * INTO CORRESPONDING FIELDS OF TABLE T405_TABFROM T405 AS T INNER JOIN MARA AS A ON T~EKWSL = A~EKWSLWHERE A~MATNR = MATNR_TXT.注意: ABAP中不是. 是~ 阅读全文
posted @ 2012-04-18 14:33 babyblue 阅读(262) 评论(0) 推荐(0)
Timeout 时间已到。
摘要:Timeout 时间已到。在操作完成之前超时时间已过或服务器未响应。语句已终止。导致原因: SqlCommand的 CommandTimeout 属性默认为30(单位为秒),可以设置的更大一点. 为0则为无限制 阅读全文
posted @ 2012-04-09 09:44 babyblue 阅读(119) 评论(0) 推荐(0)
SAP查看表数据
摘要:SE11查看/修改表结构,SE16查看表数据。以中文环境为例:1、输入TCode: SE11;2、选择“数据库表”并输入表名;3、点击“显示”。如图。 阅读全文
posted @ 2012-04-06 09:57 babyblue 阅读(2276) 评论(0) 推荐(0)
警告: 聚合或其他 SET 操作消除了空值。 是什么意思?
摘要:原因:create table tb(id int,num int)insert into tb select 1,10insert into tb select 1,20insert into tb select 2,80insert into tb select 2,nullselect id,sum(num)from tbgroup by idid ----------- -----------1 302 80(所影响的行数为 2 行)警告: 聚合或其它 SET 操作消除了空值。分析:聚合函数无法对null值进行运算,所以会忽略这个提示仅仅是警告,就是... 阅读全文
posted @ 2012-03-27 08:18 babyblue 阅读(1411) 评论(0) 推荐(0)
在 Transact-SQL 中使用 TRY...CATCH
摘要:更新日期:2006 年 7 月 17 日Transact-SQL 代码中的错误可使用 TRY…CATCH 构造处理,此功能类似于 Microsoft Visual C++ 和 Microsoft Visual C# 语言的异常处理功能。TRY…CATCH 构造包括两部分:一个 TRY 块和一个 CATCH 块。如果在 TRY 块内的 Transact-SQL 语句中检测到错误条件,则控制将被传递到 ‏CATCH 块(可在此块中处理此错误)。CATCH 块处理该异常错误后,控制将被传递到 END CATCH 语句后面的第一个 Transact-SQL 语句。如果 END CATCH 语句是存储. 阅读全文
posted @ 2012-03-27 08:05 babyblue 阅读(175) 评论(0) 推荐(0)
SQL语句取存储过程 return返回值
摘要:create proc testasreturn 1declare @a char(1) exec @a = test print @a 阅读全文
posted @ 2012-03-23 17:33 babyblue 阅读(215) 评论(0) 推荐(0)
SQL SERVER2000 删除重复记录
摘要:开发人员的噩梦——删除重复记录 想必每一位开发人员都有过类似的经历,在对数据库进行查询或统计的时候不时地会碰到由于表中存在重复的记录而导致查询和统计结果不准确。解决该问题的办法就是将这些重复的记录删除,只保留其中的一条。 在SQL Server中除了对拥有十几条记录的表进行人工删除外,实现删除重复记录一般都是写一段代码,用游标的方法一行一行检查,删除重复的记录。因为这种方法需要对整个表进行遍历,所以对于表中的记录数不是很大的时候还是可行的,如果一张表的数据达到上百万条,用游标的方法来删除简直是个噩梦,因为它会执行相当长的一段时间。 四板斧——轻松消除重复记录 殊不知在SQL Serv... 阅读全文
posted @ 2012-03-22 19:44 babyblue 阅读(159) 评论(0) 推荐(0)
从几个表查询语句 然后插入一个表的语法(目标表可以不存在)
摘要:从几个表查询语句 然后插入一个表的语法(目标表可以不存在)select * into test from t_a如果表test不存在 则会被自动创建 阅读全文
posted @ 2012-03-21 11:35 babyblue 阅读(113) 评论(0) 推荐(0)
在存储过程中通过事务和TryCatch来控制异常
摘要:begin try begin tran insert into t_a values(1) select 1/0 from t_a end trybegin catch declare @err_msg nvarchar(200) --记录错误信息 set @err_msg = ERROR_MESSAGE() rollback tranend catch上述代码可以实现在一系列动作中,如果出错在撤销所有操作的目的 阅读全文
posted @ 2012-02-29 13:36 babyblue 阅读(150) 评论(0) 推荐(0)
Table类型参数的使用 和取查询结果集方法
摘要:--一. table类型变量1.声明table类型的变量 declare @tbl Table(col1 int,col2 nvarchar(10)) 2. 声明临时表--Create Table #T (col1 varchar(10),col2 varchar(10))--Insert #T exec tableTestsss --Select * From #T --drop table #T--二. 取查询的结果集--1. 存储过程方式:CREATE PROCEDURE tableTestsssASdeclare @OrderShipperTab TABLE (col1 var... 阅读全文
posted @ 2012-02-20 15:47 babyblue 阅读(254) 评论(0) 推荐(0)
SQL中如何获取存储过程用return返回的值与判断SQL事务是否执行成功?
摘要:1.如何获取存储过程用return返回的值(1):return 返回一个值CREATE PROCEDURE testReturnASreturn 145GO--查询分析器中调用--DECLARE @RC int--exec @RC=singleValue--select @RC(2):output 返回值CREATE procedure testoutput@p1 int,@p2 int output,@p3 int output ,@p4 varchar(10) outputasselect @p2 = @p1 *2select @p3 = @p1 *3select @p4 = 's 阅读全文
posted @ 2012-02-20 15:31 babyblue 阅读(2913) 评论(0) 推荐(0)
获取存储过程返回值及代码中获取返回值
摘要:1.OUPUT参数返回值例: 向Order表插入一条记录,返回其标识CREATEPROCEDURE[dbo].[nb_order_insert](@o_buyeridint,@o_idbigintOUTPUT)ASBEGINSETNOCOUNTON;BEGININSERTINTO[Order](o_buyerid)VALUES(@o_buyerid)SET@o_id=@@IDENTITYENDEND存储过程中获得方法:DECLARE@o_buyeridintDECLARE@o_idbigintEXEC[nb_order_insert]@o_buyerid,o_idbigint2.RETURN过 阅读全文
posted @ 2012-02-20 14:31 babyblue 阅读(120) 评论(0) 推荐(0)
Sql any函数,all函数,max函数区别
摘要:如上面两个图,其中max()和all函数起到的作用是一样的, all和每一个进行比较(大于最大的或者小于最小的)any 则是大于任何一个都可以(大于最小的,小于最大的) 阅读全文
posted @ 2012-02-20 11:42 babyblue 阅读(1844) 评论(0) 推荐(0)
如何判断一个存储过程是否存在
摘要:if object_id('proc1','p') is not null 则proc1存在if exists (select 1 from sysobject where name='proc1' and xtype='p') 阅读全文
posted @ 2012-02-20 11:12 babyblue 阅读(346) 评论(0) 推荐(0)
sqlserver查询一个表有多少列
摘要:selectcount(1)fromsyscolumnswhereid=object_id('tbname')或者select*fromsyscolumnswhereid=object_id('tbname')或SELECTMAX(colid)FROMsyscolumnsWHEREid=OBJECT_ID('table') 阅读全文
posted @ 2012-02-06 09:04 babyblue 阅读(244) 评论(0) 推荐(0)
SQL行转列
摘要:把左图的2行或者多行转换成右边的一行多列select condate,ctrl_id, max(case foodtime when '夜餐时段' then times else 0 end) as 'nightTimes', max(case foodtime when '夜餐时段' then ABS(totalmoney) else 0 end) as 'nightCount', max(case foodtime when '中餐时段' then times else 0 end) as 'lunch 阅读全文
posted @ 2012-01-11 17:14 babyblue 阅读(125) 评论(0) 推荐(0)

上一页 1 2 3 4 下一页