原文:http://www.cnblogs.com/lipan/archive/2010/12/09/1892516.html
一、定义变量
declare @a int
set @a=5
print @a
declare @user1 nvarchar(50)
select @user1= '张三'
print @user1
declare @user2 nvarchar(50)
select @user2 = Name from ST_User where ID=1
print @user2
declare @user3 nvarchar(50)
update ST_User set @user3 = Name where ID=1
print @user3
|
二、表、临时表、表变量
create table #DU_User1
(
[ID] [ int ] NOT NULL ,
[Oid] [ int ] NOT NULL ,
[Login] [nvarchar](50) NOT NULL ,
[Rtx] [nvarchar](4) NOT NULL ,
[ Name ] [nvarchar](5) NOT NULL ,
[ Password ] [nvarchar]( max ) NULL ,
[State] [nvarchar](8) NOT NULL
);
insert into #DU_User1 (ID,Oid,[Login],Rtx, Name ,[ Password ],State) values (100,2, 'LS' , '0000' , '临时' , '321' , '特殊' );
select * into #DU_User2 from ST_User where ID<8
select * from #DU_User2 where ID<3 union select * from #DU_User1
drop table #DU_User1
drop table #DU_User2
|
CREATE TABLE #t
(
[ID] [ int ] NOT NULL ,
[Oid] [ int ] NOT NULL ,
[Login] [nvarchar](50) NOT NULL ,
[Rtx] [nvarchar](4) NOT NULL ,
[ Name ] [nvarchar](5) NOT NULL ,
[ Password ] [nvarchar]( max ) NULL ,
[State] [nvarchar](8) NOT NULL ,
)
insert into #t select * from ST_User
alter table #t add [myid] int NOT NULL IDENTITY(1,1)
alter table #t add [myid1] uniqueidentifier NOT NULL default (newid())
select * from #t
drop table #t
|
select IDENTITY( int ,1,1) as ID, Name ,[Login],[ Password ] into #t from ST_User
select * from #t
select ( select SUM (1) from ST_User where ID<= a.ID) as myID,* from ST_User a order by myID
|
declare @t table
(
id int not null ,
msg nvarchar(50) null
)
insert into @t values (1, '1' )
insert into @t values (2, '2' )
select * from @t
|
三、循环
declare @a int
declare @ sum int
set @a=1
set @ sum =0
while @a<=100
begin
set @ sum +=@a
set @a+=1
end
print @ sum
|
四、条件语句
if(1+1=2)
begin
print '对'
end
else
begin
print '错'
end
declare @today int
declare @week nvarchar(3)
set @today=3
set @week= 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
print @week
|
五、游标
declare @ID int
declare @Oid int
declare @Login varchar (50)
declare user_cur cursor for select ID,Oid,[Login] from ST_User
open user_cur
while @@fetch_status=0
begin
fetch next from user_cur into @ID,@Oid,@Login
print @ID
end
close user_cur
deallocate user_cur
|
六、触发器
触发器中的临时表:
Inserted
存放进行insert和update 操作后的数据
Deleted
存放进行delete 和update操作前的数据
Create trigger User_OnUpdate
On ST_User
for Update
As
declare @msg nvarchar(50)
select @msg = N '姓名从“' + Deleted. Name + N '”修改为“' + Inserted. Name + '”' from Inserted,Deleted
insert into [LOG](MSG) values (@msg)
drop trigger User_OnUpdate
|
七、存储过程
CREATE PROCEDURE PR_Sum
@a int ,
@b int ,
@ sum int output
AS
BEGIN
set @ sum =@a+@b
END
CREATE PROCEDURE PR_Sum2
@a int ,
@b int
AS
BEGIN
Return @a+@b
END
declare @mysum int
execute PR_Sum 1,2,@mysum output
print @mysum
declare @mysum2 int
execute @mysum2= PR_Sum2 1,2
print @mysum2
|
八、自定义函数
函数的分类:
1)标量值函数
2)表值函数
a:内联表值函数
b:多语句表值函数
3)系统函数
create function FUNC_Sum1
(
@a int ,
@b int
)
returns int
as
begin
return @a+@b
end
create function FUNC_UserTab_1
(
@myId int
)
returns table
as
return ( select * from ST_User where ID<@myId)
create function FUNC_UserTab_2
(
@myId int
)
returns @t table
(
[ID] [ int ] NOT NULL ,
[Oid] [ int ] NOT NULL ,
[Login] [nvarchar](50) NOT NULL ,
[Rtx] [nvarchar](4) NOT NULL ,
[ Name ] [nvarchar](5) NOT NULL ,
[ Password ] [nvarchar]( max ) NULL ,
[State] [nvarchar](8) NOT NULL
)
as
begin
insert into @t select * from ST_User where ID<@myId
return
end
select * from dbo.FUNC_UserTab_1(15)
declare @s int
set @s=dbo.FUNC_Sum1(100,50)
print @s
drop function FUNC_Sum1
|
谈谈自定义函数与存储过程的区别:
一、自定义函数:
1. 可以返回表变量
2. 限制颇多,包括
不能使用output参数;
不能用临时表;
函数内部的操作不能影响到外部环境;
不能通过select返回结果集;
不能update,delete,数据库表;
3. 必须return 一个标量值或表变量
自定义函数一般用在复用度高,功能简单单一,争对性强的地方。
二、存储过程
1. 不能返回表变量
2. 限制少,可以执行对数据库表的操作,可以返回数据集
3. 可以return一个标量值,也可以省略return
存储过程一般用在实现复杂的功能,数据操纵方面。
分享到:
相关推荐
sql server 基本语法,包含基本函数的使用用例
了解并使用SQL语言,对访问数据库的一个好帮手哦
Sqlserver基本增删改查及存储过程,事务等语法及其对应范例
sql server 基础语法,适合初学者学习观看。
SQL SERVER 基本语法参考
SQL Server 基本语法 的 笔记 所有语法一一罗列完全
这个是我从网上找的,没用过sqlserver的数据库,这资料是自己想学习用的,呵呵。
本教材重点讲解了,关于sql server 的基础语法,包含但不限于标识符,数据类型,表达式,控制流语句,增删改查,简单查询,高级查询,分组,排序,视图的基本操作等知识点的详解。同时附有视频学习地址。希望能帮助...
文档记录了SQL Server在存储运用时的语法,需要有一定的SQL语言学习基本,本文档只是做了梳理与总结,以便查看和识记。
mysql与sqlserver的基础语法区别,有视频和ppt ,是基础的教材,有需要的同学可以下载
Oracle和SQL_Server的语法区别
16.SQL Server 2014 BETWEEN语法.mp4 17.SQL Server 2014子查询IN.mp4 18.SQL Server 2014子查询EXISTS.mp4 19.SQL Server 2014返回记录排序.mp4 2.SQL Server 2014硬件和软件要求.mp4 20.SQL Server 2014关联...
SQL Server 2014基础入门视频教程 (40集,含课件) 1.SQL Server 2014简介.mp4 2.SQL Server 2014硬件和软件要求.mp4 3.SQL Server 2014数据库安装.mp4 4.SQL Server 2014数据库创建.mp4 5.SQL Server 2014...
SQL_Server语法及实例,里面包括了SQL_Server的基本语法和应用实例。
该资源总结了数据库的基本语法格式,对于操作时关键字给出了明确的总结。
SQL Server一些SQL应用的基本语法和相关的操作应用
sql数据库的一些基本语法和用途, 对初学者有帮助
SQL的过程中对调用者传进的SQL进行转换后再执行,就基本完成了整个系统的SQL语法从SQL Server到Oracle的 兼容,呵呵,听起来有点不可思议。系统已经于3个月前上线,目前运行很稳定。 如果有人用得着或发现什么...
sql的基本语法格式,值得初学者学习~,包括增删改等基础语法,还有一些提高内容!
SQl server练习50题,基础练习,查询、多表查询等