存储过程如下:
ALTER PROCEDURE [dbo].[register]
@username varchar(50),
@password varchar(50),
@email varchar(50)
AS
insert into login(USER_NAME,USER_PASSWORD,E_MAIL) values(@username,@password,@email)
BEGIN SET NOCOUNT ON;
return @@rowcount
END在sql server里面运行后,返回的@@rowcount老是0,但login表有数据插入了,这是怎么回事呢
EXEC @return_value = [dbo].[register]
----这里提示could not find stored procedure 'dbo.register'
@username = N'gg',
@password = N'gg',
@email = N'11'
ALTER PROCEDURE [dbo].[register]
@username varchar(50),
@password varchar(50),
@email varchar(50)
AS
insert into login(USER_NAME,USER_PASSWORD,E_MAIL) values(@username,@password,@email)
BEGIN SET NOCOUNT ON;
return @@rowcount
END在sql server里面运行后,返回的@@rowcount老是0,但login表有数据插入了,这是怎么回事呢
EXEC @return_value = [dbo].[register]
----这里提示could not find stored procedure 'dbo.register'
@username = N'gg',
@password = N'gg',
@email = N'11'
@username varchar(50),
@password varchar(50),
@email varchar(50)
AS
BEGIN
SET NOCOUNT ON;
insert into login(USER_NAME,USER_PASSWORD,E_MAIL) values(@username,@password,@email)
return @@rowcount
END
GO
--在sql server里面运行后,返回的@@rowcount是上一条记录的影响行数.
EXEC @return_value = [dbo].[register]
----这里提示could not find stored procedure 'dbo.register'
@username = N'gg',
@password = N'gg',
@email = N'11'详看联机帮助
BEGIN
SET NOCOUNT ON;
insert into login(USER_NAME,USER_PASSWORD,E_MAIL) values(@username,@password,@email)
return @@rowcount
END
马上加一句 select @tr = @@rowcount
最后查select @tr as rowcount
保留前一个语句执行中的 @@ROWCOUNT。
将 @@ROWCOUNT 重置为 0 但不将该值返回到客户端。
执行简单分配的语句始终将 @@ROWCOUNT 值设置为 1。不将任何行发送到客户端。这些语句的示例如下:SET @local_variable、RETURN、READTEXT 以及不带查询 Select 语句,如 SELECT GETDATE() 或 SELECT 'Generic Text'。在查询中执行分配或使用 RETURN 的语句将 @@ROWCOUNT 值设置为受查询影响或由查询读取的行数,例如:SELECT @local_variable = c1 FROM t1。数据操作语言 (DML) 语句将 @@ROWCOUNT 值设置为受查询影响的行数,并将该值返回到客户端。DML 语句不会将任何行发送到客户端。DECLARE CURSOR 和 FETCH 将 @@ROWCOUNT 值设置为 1。EXECUTE 语句保留前一个 @@ROWCOUNT。USE、SET <option>、DEALLOCATE CURSOR、CLOSE CURSOR、BEGIN TRANSACTION 或 COMMIT TRANSACTION 等语句将 ROWCOUNT 值重置为 0。
(
user_namecol varchar(50),
user_password varchar(50),
e_mail varchar(50)
)drop procedure [dbo].[register]
gocreate PROCEDURE [dbo].[register]
@username varchar(50),
@password varchar(50),
@email varchar(50),
@count int output
AS
BEGIN
SET NOCOUNT ON;
insert into login_tab(USER_NAMEcol,USER_PASSWORD,E_MAIL) values(@username,@password,@email)
select @count=@@rowcount
END
GO
--在sql server里面运行后,返回的@@rowcount是上一条记录的影响行数.
DECLARE @countdd int
execute [dbo].[register] N'gg',N'gg',N'test',@countdd output
select @countdd 影响行数
go