实验9-1 编写一个存储过程
在TestDB数据库中,编写一个存储过程proc_test_func,要求如下:
1)输入参数 一个整型的输入参数 @value
2)要求在一个select语句返回:
@value的绝对值,
此绝对值的平方,
此绝对值的平方根(保留两位小数),
此绝对值的自然对数(保留两位小数),
以此绝对值的为半径的圆的面积(保留两位小数),
别名依次为:abs, sq, sqrt,log, square
测试语句:
proc_test_func -35;
proc_test_func 0;
proc_test_func 15;
USE testdb
GO
CREATE PROCEDURE proc_test_func @value int
AS
select ABS(@value) abs,SQUARE(ABS(@value))sq ,Round(sqrt(ABS(@value)),2)sqrt ,
round(log(ABS(@value)),2)log,round(PI()*ABS(@value)*ABS(@value),2) square
实验9-2 编写存储过程
在TestDB中,编写一个存储过程proc_test_date,要求如下:
1)一个日期参数@adate,一个整型参数@aint,
2)在一个select依次返回:
@adate在年上加@aint的结果,别名为futureyear
@adate在天上加@aint的结果,别名为futureday
测试语句:
proc_test_date ‘2016-8-22’, 10
CREATE PROCEDURE proc_test_date @adate date ,@aint int
AS
select DATEADD(year,@aint,@adate)futureyear,DATEADD(day,@aint,@adate) futureday
实验9-3编写存储过程
在TestDB数据库中, 编写一个存储过程proc_test_char,要求:
1)参数1:变长字符串@target,长度128;
参数2:变长字符串@source1,长度10;
参数3:变长字符串@source2,长度10;
2)实现使用一个select语句返回下列信息:
字符串@target的长度,别名length
@target前10个字符构成的字符串,别名header10
@target末尾10个字符构成的字符串,别名tailer10
反转@target字符串得到的结果,别名reverse
@target全部字符转换为大写的结果,别名uppercase
使用@source2替换@target中出现的@source1的结果,别名rep
测试语句:
proc_test_char ‘abcdefaelqjkwer;jekf’, ‘def’, ‘aaa’
CREATE PROCEDURE proc_test_char @target nvarchar(128) ,@source1 nvarchar(10),@source2 nvarchar(10)
AS
select len(@target) length,LEFT(@target,10) header10, RIGHT(@target,10)tailer10 ,
REVERSE(@target)reverse,UPPER(@target) uppercase,REPLACE(@target,@source1,@source2) rep