sql语句学习中二
当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'news_type' 中的标识列插入显式值。一般用powerdesigner时候做测试数据的时候把主键
的identity(1,1)去掉就可以了!
select getdate() as mydate;
2008-08-13 15:02:25.077
得到日
select Day(getdate()) as mydate;
13
得到月
select Month(getdate()) as mydate;
8
得到年
select Year(getdate()) as mydate;
得到小时
select Datepart(hh,getdate()) as mydate;
下表列出了 Microsoft SQL Server 2005 Mobile Edition 可识别的 datepart 选项和缩写:
日期部分 缩写
年份 yy、yyyy 季度 qq、q 月份 mm、m 每年的某一日 dy、y 日期 dd、d
星期 wk、ww 工作日dw小时 hh 分钟 mi、n 秒 ss、s 毫秒 ms
if语句
create function getMyweekday()
returns varchar(50)
as
begin
declare @day int
declare @weekday varchar(50)
set @day=Convert(int,Datepart(weekday,getdate()))
if(@day=1)
set @weekday='星期日'
else if(@day=2)
set @weekday='星期一'
else if(@day=2)
set @weekday='星期二'
else if(@day=2)
set @weekday='星期三'
else if(@day=2)
set @weekday='星期四'
else if(@day=2)
set @weekday='星期五'
else if(@day=2)
set @weekday= '星期六'
return @weekday
end;
这个是标量值函数
use MyDatabase
go
create function xingqi()
returns varchar(10)
as
begin
declare @Today int;
declare @weekday varchar(10);
set @Today=DatePart(dw,Getdate());
set @weekday=case @Today
when 1 then '星期天'
when 2 then '星期一'
when 3 then '星期二'
when 4 then '星期三'
when 5 then '星期四'
when 6 then '星期五'
when 7 then '星期六'
else '弥撒'
end;
return @weekday
end
上面是简单case函数
下面是搜索case函数
use MyDatabase
go
create function xingqi()
returns varchar(10)
as
begin
declare @Today int;
declare @weekday varchar(10);
set @Today=DatePart(dw,Getdate());
set @weekday=case
when @Today=1 then '星期天'
when @Today=2 then '星期一'
when @Today=3 then '星期二'
when @Today=4 then '星期三'
when @Today=5 then '星期四'
when @Today=6 then '星期五'
when @Today=7 then '星期六'
else '弥撒'
end;
return @weekday
end
create function getMyweekday()
returns varchar(50)
as
begin
declare @day int
set @day=Convert(int,Datepart(weekday,getdate()))
return @day
end
这个是表值函数
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
create function [dbo].[select_news]
(
@id int,
@title varchar(100)
)
returns TABLE
as
return
(
select id,title
from news
where id<22
);
游标举例:
use luntan
go
declare @id nvarchar(20) --定义变量来保存ID号
declare @A float --定义变量来保存值
declare mycursor cursor for select id,typeid from news --为所获得的数据集指定游标
print @@fetch_status
open mycursor --打开游标
fetch next from mycursor --开始抓数据
WHILE @@FETCH_STATUS = 0 --这时才可以检查@@fetch_status的值,=0表示成功,这里是一个循环
BEGIN
-- This is executed as long as the previous fetch succeeds.
FETCH NEXT FROM mycursor--这里的fetch语句被循环执行。
if @@fetch_status <> 0
print @@fetch_status
END
close mycursor --关闭游标
deallocate mycursor --删除游标
fetch next from mycursor into @id