存储过程

阻止在结果中返回可显示受 Transact-SQL 语句影响的行数的消息。
当 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数)。当 SET NOCOUNT 为 OFF 时,返回计数。

ALTER proc [dbo].[p_e_get_counter]  
@object varchar(5) 
as  
/*  
 描述:  
  得到参数新对象主键编号,并修改“编号生成表”编号加一  
 步骤:  
  如果“编号生成表”不存在,就在表中新添加,取得序号位数  
  得到新编号,修改编号生成表  
  按格式返回  
 输入参数:  
  @object 对象编号  
 返回:  
  r_id  对象编号  
 涉及:  
  t_e_counter  编号生成表  
 变量:  
  @temp_counter  序数  
  @list_length  序数长度  
  @object_prefix  编号前缀  
*/  
begin  
 set nocount on  
 declare @temp_counter int,@list_length smallint,@object_prefix varchar(5)  
  
  
/*  
 如果“编号生成表”不存在,就在表中新添加,取得序号位数  
*/  
 select @list_length=list_length,@object_prefix=object_prefix from t_e_counter where object=@object  
  
 if @list_length is null  
 begin  
  insert t_e_counter (object,object_prefix,counter,list_length) values(@object,@object,1,10)  
  select @list_length=10,@object_prefix=@object  
 end  
  
  
/*  
 得到新编号,修改编号生成表  
*/  
 begin tran  
  select @temp_counter=counter from t_e_counter where object=@object  
  update t_e_counter set counter=counter+1 where object=@object  
 commit tran  
  
  
/*  
 按格式返回  
*/  
 select @object_prefix+right(power(cast(10 as numeric(18)),@list_length)+@temp_counter,@list_length)   r_id
  
 return  
end

对于一些初学者来说也是比较抽象难理解的。将抽象的事物形象化,比较容易理解。

一、定义变量
--简单赋值 
declare @a int
set @a=5 
print @a 
  
--使用select语句赋值 
declare @user1 nvarchar(50) 
select @user1='张三'
print @user1 
declare @user2 nvarchar(50) 
select @user2 = Name from ST_User where ID=1 
print @user2 
  
--使用update语句赋值 
declare @user3 nvarchar(50) 
update ST_User set @user3 = Name where ID=1 
print @user3

SQL Server中的临时表的用法

 临时对象都以#或##为前缀,临时表是临时对象的一种,临时对象都存储在tempdb中。以#前缀的临时表为本地的,因此只有在当前用户会话中才可以访问,而##前缀的临时表是全局的,因此所有用户会话都可以访问。临时表以会话为边界,只要创建临时表的会话没有结束,临时表就会持续存在,当然用户在会话中可以通过DROP TABLE命令提前销毁临时表。

   临时表在运行被创建的,虽说它的名字叫做临时表,可是对它的操作和我们平时操控表的操作基本一样, 比如最简单增、删、改、查等等。但是,需要注意的是临时表的创建是有范围限制的。

存储过程的好处:张龙豪
1.由于数据库执行动作时,是先编译后执行的。然而存储过程是一个编译过的代码块,所以执行效率要比T-SQL语句高。
2.一个存储过程在程序在网络中交互时可以替代大堆的T-SQL语句,所以也能降低网络的通信量,提高通信速率。
3.通过存储过程能够使没有权限的用户在控制之下间接地存取数据库,从而确保数据的安全。

 原文出处
public static T Get<T>(T t)
{
   return t;
}
就是 这个函数针对T这个类型会有不同的表现
string Get<string> 
int Get<int> 
char Get<char>  。。。
这样一来 由于泛型不同 返回类型也不同

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