CREATE PROCEDURE [dbo].[Add_Admin] 
(
 @UserName nvarchar(50),
 @Password nvarchar(50),
 @LastLoginIP nvarchar(50),
 @LastLoginTime Datetime
)
AS
 INSERT INTO
  Admin
  (
  UserName,
  Password,
  LastLoginIP,
  LastLoginTime
  )
 Values
  (
  @UserName,
  @Password,
  @LastLoginIP,
  @LastLoginTime
  )
RETURN @@IdentityGO删
CREATE PROCEDURE [dbo].[Delete_Admin]
(
 @ID int
)
 AS
 DELETE Admin WHERE ID=@IDGO改
CREATE PROCEDURE [dbo].[Update_Admin] 
(
 @ID int,
 @UserName nvarchar(50),
 @Password nvarchar(50),
 @LastLoginIP nvarchar(50),
 @LastLoginTime Datetime
)
AS
 UPDATE
  Admin
 SET
  UserName =@UserName ,
  Password=@Password,
  LastLoginIP=@LastLoginIP,
  LastLoginTime=@LastLoginTime
 WHERE
  ID=@IDGO查
CREATE procedure Get_Product
(@startIndex int,
@endIndex int,
@docount bit)
as
set nocount on
if(@docount=1)
select count(*) AS Counts from Product
else
begin
declare @indextable table(id int identity(1,1),nid int)
set rowcount @endIndex
insert into @indextable(nid) select ID from Product  order by ID desc
select * from Product O,@indextable t where O.ID=t.nid
and t.id between @startIndex and @endIndex order by t.id
end
set nocount offGO

解决方案 »

  1.   

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

  2.   

    RETURN @@Identity 返回最后一次插入的主键值.
      

  3.   

    identity表示自增列的意思。 
    比如创建表语句是 
    create table table1(id int identity,t varchar(500)) 
    表的第一列是id,它是int型的,并且是自增的,也就是你向表中插入数据的时候,不用给id列赋值,id列会自己复制。
      

  4.   

    SET ROWCOUNT 100 是设置查询出来的最大记录条数是100。
    当你的table记录>100条时会show top 100 record SET ROWCOUNT 与 TOP 的不同之处在于: SET ROWCOUNT 限制适用对 ORDER BY 取值后在结果集中生成行。如果指定了 ORDER BY,SELECT 语句将在从某个已根据指定的 ORDER BY 分类进行了排序的值集中选择 n 行后终止。
    TOP 子句适用于指定了该子句的单个 SELECT 语句。在执行另一个 SET ROWCOUNT 语句之前,SET ROWCOUNT 会一直有效,例如执行 SET ROWCOUNT 0 将会关闭此选项。