阻止在结果中返回可显示受 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
临时对象都以#或##为前缀,临时表是临时对象的一种,临时对象都存储在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> 。。。 这样一来 由于泛型不同 返回类型也不同