1、函数:不能改变任何数据,只能给一个数据,返回数据,即查询功能
2、触发器:存储过程中自动执行(系统已不用,项目开发部还是在用),e开头的都是带触发器的视图。
3、定义变量:(不加@,即为游标)
--变量在若干情况下需要初始化
declare @i varchar(2000)
set @i=''
select @i=@i+username+';' from myUser where UserName is not null
print @i
4、定义表变量:
DECLARE @变量名 TABLE(列名1 类型,列名2,类型……)
DECLARE @CstTemp TABLE
(
CstGUID varchar(40),
CstName varchar(10)
)
5、临时表:
使用select into,存在内存不用需要dorp掉 ,表名前加#
select identity(int,1,1)as id
, buguid,buname
into #t from mybusinessunit
6、循环表:
declare @i int
select @i=count(*) from #t
declare @j int
set @j=1
declare @s varchar(2222)
while @j<=@i
begin
select @s=buname from #t where id=@j
print @s
set @j=@j+1
end
7、exec执行sql:使用程序拼出sql
exec('declare @i int set @i=5 print @i')
8、表函数:
create function f1(@a int,@b int)
returns int
as
begin
return @a+@b
end
print dbo.f1(2,3)
9、视图:(里面不允许使用 * 号),视图的增删改需要使用触发器
select view s
as
select 字段 from biao
if OBJECT_ID('te') is not null
drop view te
go
create view te
as
....
10、存储过程:
alter proc p1 (@i int=1 ,@j int output)
as
begin
set @j=@i
end
declare @j1 int
exec p1 2,@j1 OUTPUT
print @j1