-----------------T_SQL------------------------------
--1.全局变量-------------------------------------
print @@identity --最后一次插入的标识值
print @@language --当前使用语言
print @@version --版本号
print @@servername--服务名
--2.自定义变量
----1.声明用declare
declare @i int,@j int
declare @sum int
----2.赋值set,select
set @i=10
select @j=20
--把i与j的值加起来,并打印
set @sum=@i+@j
print @sum
--把最低分查找出来,打印
------while 循环语句
declare @stat int,@end int,@count int
set @end=10
set @count=0
set @stat=0
while(@stat<=@end)
begin
--里面可以执行任何语句
set @count=@stat+@count
set @stat=@stat+1
insert into t_buyer(baid) values(@count)
end
print @count
------------定时命令------------------
waitfor delay '00:00:3'--延时3秒执行
print '3..2..1 go!'
Select CONVERT(varchar(100), GETDATE(), 24)
waitfor time '11:40:56' --10:57:47 --到时执行
print 'hell0!'
-------case语句
--用法1
select case when len(bquertion)>0 then '有值'
else '没值' end,* from t_buyer
select * ,等级=case
when score>80 then '优秀'
when score>=60 then '良好'
else '不及格'
end
from Grade
--用法二
select *,称呼=case sex when '男' then '大帅哥'
else '小美女' end
---函数
create function fn_Sum
(---参数列表
@aa int ,
@bb int
)
returns int --指定返回类型
as
begin
--方法体
declare @s int
set @s=@aa+@bb
return @s
end
declare @x int
set @x =dbo.fn_Sum(10,20)
print @x
-------------------动态执行-------------------
declare @sql varchar(400)
set @sql='select * from student'
-----将字符串当做sql server 中的语句来执行
exec(@sql)-------只要@sql中的语句符合sql的语法就可以
--存储过程
--无参存储过程
create proc up_print
as
print 1
go
--带参函数
create proc up_print1 --(在sql中存储过程不能同名)
@str nvarchar(20)
as
print @str
go
exec up_print
exec up_print1 '你好啊'
--带输出参数的存储过程
create procedure up_print2
@xing nvarchar(1),
@ming nvarchar(5),
@rtn nvarchar(6) output
as
set @rtn=@xing+@ming
go
declare @rtn nvarchar(6)
exec up_print2 '李','涛',@rtn output
print @rtn
----写一个新增学生的存数过程up_insertStu
if (OBJECT_ID('up_insertStu','p'))is not null
drop proc up_insertStu
go
create proc up_insertStu
@stuname varchar(20),
@sex varchar(2),
@stuno varchar(40),
@birthday datetime,
@remark text
as
begin try
declare @id int
--1.插入数据
insert into student values(@stuname,@sex,@stuno,@birthday,@remark)
--2.为刚才这个的、学生添加一个英语随机分数
set @id =@@IDENTITY
insert into grade values('英语',RAND()*100,@id)
end try
begin catch
print '执行出错,违反约束,错误号:'+convert(varchar,@@error)
end catch
go
---------------------------------调用----------------------------------
exec up_insertStu '涛涛','男','2014140208','1991-1-1','无'