SQL数据库
CURSOR
==================================
l SQL 游标CURSOR的使用
使用起来很简单,先定义,然后赋个值,打开,通过While Loop 一个一个读下去,最后关闭,释放内存。基本套路如下:
DECLARE MyCursor cursor /* 声明游标,默认为单纯向前的游标。如果想要前后跳来跳去的,写成Scroll Cursor即可 */
FOR
SELECT Column1, Column2 from 某某表
Where 某某条件
OPEN MyCursor /* 打开游标 */
FETCH NEXT from MyCursor Into @A, @B /* 读取第1行数据*/
WHILE @@FETCH_STATUS = 0 /* 用WHILE循环控制游标 */
BEGIN /*BEGIN-END 块*/
//在这里,用@A,@B做点事,或者改一改值什么的.
FETCH NEXT from MyCursor Into @A, @B /* 抓下一行 */
END
CLOSE MyCursor /* 关闭游标 */
DEALLOCATE MyCursor /* 删除游标,释放内存 */
声明游标///////////////////////
USE pubs
GO
DECLARE authors_cursor CURSOR FOR
SELECT au_id,au_fname,au_lname
from authors
GO
USE pubs
GO
DECLARE authors_cursor1 CURSOR FOR
SELECT au_id,au_fname,au_lname
from authors
FOR READ ONLY
GO
USE pubs
GO
DECLARE authors_cursor2 CURSOR FOR
SELECT au_id,au_fname,au_lname
from authors
FOR UPDATE
GO
打开游标////////////
DECLARE mancursor CURSOR FOR
SELECT *
from db_manpowerinfo.dbo.人事表
WHERE 编号='00019'
OPEN mancursor
FETCH NEXT from mancursor
CLOSE mancursor
读取游标中的数据/////////////////////
DECLARE mancursor1 CURSOR FOR
SELECT 编号,姓名,性别,身份证号
from db_manpowerinfo.dbo.人事表
OPEN mancursor1
FETCH NEXT from mancursor1
WHILE @@FETCH_STATUS=0
BEGIN
FETCH NEXT from mancursor1
END
CLOSE mancursor1
DEALLOCATE mancursor1
关闭并释放游标//////////////////
USE 销售管理系统
GO
DECLARE mycursor CURSOR FOR
SELECT 客户全称,count(*) as 销售记录数,sum(数量)as 销售数量 from 销售表 WHERE 数量 >100 Group BY 客户全称
OPEN mycursor
FETCH NEXT from mycursor
WHILE @@FETCH_STATUS = 0 -- 判断是否还有须要读取的记录
BEGIN
FETCH NEXT from mycursor --读取记录到游标
END
CLOSE mycursor
DEALLOCATE mycurso
相关文档:
问题
当sql server启动时,我很想运行一个存储过程。有没有一种方法可以在每次SQL Server服务启动时都会自动执行这个存储过程呢?
专家解答
sql Server提供了系统存储过程sp_procoption,这个存储过程可以用于当SQL Server服务启动时指派一个或者多个存储过程自动执行。这是一个很不错的选择,它可以用于多种 ......
1 :普通SQL语句可以用Exec执行
例: Select * from tableName
Exec('select * from tableName')
& ......
Oracle 动态SQL返回单条结果和结果集
1. DDL 和 DML
/**//*** DDL ***/
begin
EXECUTE IMMEDIATE 'drop table temp_1';
EXECUTE IMMEDIATE 'create table temp_1(name varchar2(8))';
end;
/**//*** DML ***/
declare
v_1 varchar2(8);
& ......
做开发过程中,经常会用到将Excel中数据导出到SQL Server中的情况,你可以利用SQL SERVER 中自带的导入数据的方式,但这种方式,有时会发现数据导入后,可能为空,可能开头少个零,此种情况多出现于数值型的列,今天在CSDN上闲逛,偶尔发现了一个帖子,介绍的以下这种方法,本人恰七因最近公司准备上市,审计局在做审计,技 ......
thunder:
1.MYSQL实现
mysql> select * from user;
+----+----------+----------+-----------------+
| ID | username | password | email |
+----+----------+----------+-----------------+
| 1 | admin | admin &nb ......