--创建表格或存储过程视图神马的添加的判断。
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[proc_s_score_list]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
OBJECTPROPERTY:返回当前数据库中对象的有关信息。
--避免死锁的方法
1.在select语句中末尾添加nolock
默认情况下系统会对select语句添加S锁即共享锁,S锁与X锁(排他锁)不兼容,加上with(nolock)就不会了,或者加Sch-S锁,Sch-S锁与任何锁兼容。
如:select * from s_score_detail nolock
2.在链接表时添加nolock,不会锁住链接的表
select * from view_s_score_detail vs(nolock) left join dic_employee em(nolock) ...
--Set Fmtonly{off/on}
缺省值是off,当设置为on时,只返回元数据而不处理任何行
--Set NO_BROWSETABLE ON
SQL锁机制的系统选修,把当前表所起,不允许用户浏览
--like运算符
like运算符可当做=与like的结合,如用户想实现输入为空时查找全部,输入不为空时按输入查找
可定义一变量 @emp_sn = '%'
select * from view_s_score_detail vs(nolock) where vs.emp_sn like @emp_sn
--添加自增列
Alter table #temp1 Add sort int IDENTITY(1,1)
或者选择时添加
select em.emp_sn, vs.score,identity(int,1,1) sort from view_s_score_detail
或者定义时添加
create table score
(
code int identity(1,1) not null COLLATE Chinese_PRC_CI_AS NOT NULL,
......
)
COLLATE :sql语句里面的COLLATE主要用于对字符进行排序,表示输入记录是,FTUID按照Chinese_PRC_CI_AS 格式进行排序
--添加主键比较龟毛的写法
alter table[dbo].[dic_employee] WITH nocheck ADD
CONSTRAINT [PK_dic_employee] PRIMARY KEY CLUSTERED
(
[emp_sn]
) ON [PRIMARY]
--定义、打开、删除游标
declare scroe_cursor cursor for
select emp_sn,grade,sc_name,cast(scroe as varchar(10)) from #t_temp order by emp_sn asc,grade asc
open scroe_cursor
fetch next from scroe_cursor into @emp_sn ,@gr_code,@sc_name,@scroe
close scroe_cursor
deallocate scroe_cursor