关于存储过程的一点小结

当 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数)。当 SET NOCOUNT 为 OFF 时,返回计数。
如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。

SET 不返回结果
     SELECT 返回结果 注:(SET是设置的意思 SELECT是选择的意思 )

 

关于存储过程的一点小结 例:DECLARE @str1 varchar( 10 ) @int1  int  
关于存储过程的一点小结SET @str1
= ' string '  
关于存储过程的一点小结SELECT @int1
= 123  
关于存储过程的一点小结PRINT 
' str1: ' + @str1 
关于存储过程的一点小结PRINT 
' int1: ' + STR(@int1) 
关于存储过程的一点小结这个语句 SET 和 SELECT 有什么区别??
关于存储过程的一点小结都可以给变量赋值,像给单个变量赋值时,如果不涉及到数据表操作,通常使用SET关键字,如果是多个变量赋值,并且这些值是从数据表中读取的情况下,一般都采用SELECT赋值。

 

 

关于存储过程的一点小结declare
关于存储过程的一点小结@str1 varchar(
10),
关于存储过程的一点小结@str2 varchar(
20),
关于存储过程的一点小结@int1 
int,
关于存储过程的一点小结@int2 
int
关于存储过程的一点小结
set @str1='panjun'
关于存储过程的一点小结select @str2
='luhan'
关于存储过程的一点小结
set @int1=
关于存储过程的一点小结(
关于存储过程的一点小结select top 
1 convert(int,left(au_id,1)) from authors
关于存储过程的一点小结)

select @int2=
关于存储过程的一点小结(
关于存储过程的一点小结select top 
1 convert(int,left(au_id,1)) from authors
关于存储过程的一点小结order by au_id desc
关于存储过程的一点小结)
关于存储过程的一点小结print @str1
关于存储过程的一点小结print @str2
关于存储过程的一点小结print @int1
关于存储过程的一点小结print @int2

从存储过程获得所要的结果,或者在一个存储过程中调用另一个存储过程

 

关于存储过程的一点小结 CREATE PROCEDURE panjun1
关于存储过程的一点小结
关于存储过程的一点小结@total 
int  output
关于存储过程的一点小结 AS
关于存储过程的一点小结
set  nocount on
关于存储过程的一点小结select @total
=
关于存储过程的一点小结(
关于存储过程的一点小结select sum(typeid)
关于存储过程的一点小结from news
关于存储过程的一点小结)
关于存储过程的一点小结GO

 

 

关于存储过程的一点小结 CREATE PROCEDURE panjun2
关于存储过程的一点小结@id 
int ,
关于存储过程的一点小结@total 
int  output
关于存储过程的一点小结 AS
关于存储过程的一点小结
set  nocount off
关于存储过程的一点小结select @total
=
关于存储过程的一点小结(
关于存储过程的一点小结select sum(typeid)
关于存储过程的一点小结from news
关于存储过程的一点小结
where  id > @id
关于存储过程的一点小结)
关于存储过程的一点小结GO

 

我在前台的数据分析器中测试代码

 

关于存储过程的一点小结 use luntan
关于存储过程的一点小结declare @total 
int
关于存储过程的一点小结declare @id 
int
关于存储过程的一点小结
set  @id = 4
关于存储过程的一点小结execute panjun1 @total output
关于存储过程的一点小结print @total
关于存储过程的一点小结execute panjun2 @id,@total output
关于存储过程的一点小结print @total
关于存储过程的一点小结print @id
关于存储过程的一点小结go

 

同时收藏一个人的相似代码

 

在开发阶段,有时不想在c#中处理一些表中的字段内容,直接在存储过程中处理,以下是我的在开发时,在存储过程中处理日期时,通过一个存储过程中调用另一个存储过程的实现方法,第一次运用这种,刚开始不会的,在网上查了一下,感觉有必要写下来,以便下会遇到时方便查阅!刚学存储过程不长,有些代码处理,对高手来说,可能很差劲,还望高手指正,本人将加一修改!谢谢

关于存储过程的一点小结 -- 外部传参数如 2007年6月25日,处理完后为25-Jun-07
关于存储过程的一点小结
CREATE   procedure  pro_test
关于存储过程的一点小结
@date_1   varchar ( 255 )
关于存储过程的一点小结
as
关于存储过程的一点小结
-- 保存年
关于存储过程的一点小结
declare   @year   varchar ( 4 )
关于存储过程的一点小结
-- 保存月
关于存储过程的一点小结
declare   @month   varchar ( 2 )
关于存储过程的一点小结
-- 保存日
关于存储过程的一点小结
declare   @day   varchar ( 2 )
关于存储过程的一点小结
-- 根据@date_1调用另一个存储过程,返回与@month相对应的英文
关于存储过程的一点小结
declare   @result   varchar ( 20 )
关于存储过程的一点小结
-- 保存最终处理结果25-Jun-07
关于存储过程的一点小结
declare   @ymd   varchar ( 20 )
关于存储过程的一点小结
关于存储过程的一点小结
begin
关于存储过程的一点小结
set   @year   =   substring ( @date_1 , 1 , 4 );
关于存储过程的一点小结
set   @month   =   substring ( @date_1 , charindex ( ' ' , @date_1 ) + 1 , charindex ( ' ' , @date_1 ) - charindex ( ' ' , @date_1 ));
关于存储过程的一点小结
-- 清空月前面的'0'
关于存储过程的一点小结
if   left ( @month , 1 =  " 0 "
关于存储过程的一点小结    
set   @month   = substring ( @month , 2 , 1 );
关于存储过程的一点小结
-- 调用另一个存储过程,请注意output
关于存储过程的一点小结
exec  pro_test2  @month @result  output;
关于存储过程的一点小结
关于存储过程的一点小结
set   @day   =   substring ( @date_1 , charindex ( ' ' , @date_1 ) + 1 , len ( @date_1 ) - charindex ( ' ' , @date_1 ));
关于存储过程的一点小结
-- 清空日前面的'0'
关于存储过程的一点小结
if   left ( @day , 1 = " 0 "
关于存储过程的一点小结    
set   @day   =   substring ( @day , 2 , 1 );
关于存储过程的一点小结
set   @ymd   =   @day + ' - '   + @result + ' - '   + @year ;
关于存储过程的一点小结
select   @ymd ;
关于存储过程的一点小结
select   @year   as  y;
关于存储过程的一点小结
select   @month   as  m;
关于存储过程的一点小结
select   @day   as  d;
关于存储过程的一点小结
select   @result
关于存储过程的一点小结
select   @day + ' - '   + @result + ' - '   + @year
关于存储过程的一点小结
关于存储过程的一点小结
end
关于存储过程的一点小结
GO
关于存储过程的一点小结

另一个存储过程,用来处理月
关于存储过程的一点小结 CREATE   procedure  pro_test2
关于存储过程的一点小结
@month   varchar ( 255 ),
关于存储过程的一点小结
@result   varchar ( 255 ) output
关于存储过程的一点小结
as
关于存储过程的一点小结
set   @result   =
关于存储过程的一点小结
case  
关于存储过程的一点小结    
when   @month   =   ' 1 '   then   ' Jan '
关于存储过程的一点小结    
when   @month   =   ' 2 '   then   ' Feb '
关于存储过程的一点小结    
when   @month   =   ' 3 '   then   ' Mar '
关于存储过程的一点小结    
when   @month   =   ' 4 '   then   ' Apr '
关于存储过程的一点小结    
when   @month   =   ' 5 '   then    ' May '
关于存储过程的一点小结    
when   @month   =   ' 6 '   then ' Jun '
关于存储过程的一点小结    
when   @month   =   ' 7 '   then   ' Jul '
关于存储过程的一点小结    
when   @month   =   ' 8 '   then   ' Aug '
关于存储过程的一点小结    
when   @month   =   ' 9 '   then   ' Sep '
关于存储过程的一点小结    
when   @month   =   ' 10 '   then    ' Oct '
关于存储过程的一点小结    
when   @month   =   ' 11 '   then    ' Nov '
关于存储过程的一点小结    
else    ' Dec '
关于存储过程的一点小结
end
关于存储过程的一点小结
select   @result  ;
关于存储过程的一点小结
GO
关于存储过程的一点小结
追加一点:case的用法,case的用法,如c#中switch的用法相类试,但case执行完后要返回内容,而switch中,case的直接在case中代码段中,处理逻辑!

你可能感兴趣的:(存储过程)