WEB开发网
开发学院数据库MSSQL Server mssql方便的函数使用与游标使用 阅读

mssql方便的函数使用与游标使用

 2012-07-28 09:01:52 来源:WEB开发网   
核心提示: 结果: 新建函数: GO/** 对象: UserDefinedFunction [dbo].[fun_get_class_nam] 脚本日期: 07/28/2012 07:26:23 **/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO/*** PROCEDU

 

 
 
结果:
 
 
新建函数:
 
GO
/****** 对象:  UserDefinedFunction [dbo].[fun_get_class_nam]    脚本日期: 07/28/2012 07:26:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


/*****************************************************
** PROCEDURE : fun_get_class_nam
** DECRIPTION: 根据班级id获取班级名称
** DATE      : 2010-07-28
** VERSION      AUTH          DATE          DESC
** --------  ------------  ------------  -----------------
** V000.0.1    pukuimin		2010-07-28     新建程序
** --------  ------------  ------------  -----------------
*******************************************************/
alter function [dbo].[fun_get_class_nam](  @class_id bigint
								 )
returns varchar(200)
as
begin	
	declare @class_nam varchar(200)
	set @class_nam = null
	select @class_nam = className
	  from classinfo 
	 where classID = @class_id AND stat='1'

	return @class_nam
END
 
 
查询语句中使用函数:
 
 
SELECT
	id,
	username,
	userpwd,
	classID,
	dbo.fun_get_class_nam(classID) AS classname,
	score,
	age
FROM
	stuinfo
 
 
下面是游标的简单用法:
 
 
    
DECLARE cur CURSOR  --声明游标
FOR
SELECT score,age FROM stuinfo

Open cur  --打开游标
    
DECLARE @score int --接收游标数据的变量,与上面的声明游标查询语句的个数相同
DECLARE @age int 

fetch Next from cur into @score,@age  --查询一次数据到变量
     
WHILE (@@FETCH_STATUS = 0 )  --如果不为空就循环读取
BEGIN
    IF (@score<85 AND @age <18)  --对符合条件的进行操作
        UPDATE stuinfo SET score = 888
        WHERE  CURRENT OF cur 
    FETCH Next FROM cur INTO @score,@age  --查询下一条
END
CLOSE cur   --关闭游标
DEALLOCATE cur  --释放游标
 

Tags:mssql 方便 函数

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接