sql 触发器与存储过程?

2025-02-25 06:17:26
推荐回答(1个)
回答1:

--更改发贴数触发器
create TRIGGER TR_Topic_Insert ON dbo.Topic
FOR INSERT
AS
declare
@tsid int
select
@tsid=tsid
from inserted
update section set sclickcount=sclickcount+1 where sid=@tsid
--update section set stopiccount=sclickcount+1 where sid=@tsid --贴子数量是哪个字段?标错了的话就用这行。
go
--随机字串函数附件1
CREATE VIEW [dbo].[SHvwRand]--随机数视图
AS
SELECT RAND() AS frand
GO

--随机字串函数附件2
ALTER FUNCTION SHrandom --随机函数
(
@n int
)
RETURNS int
AS
BEGIN
select @n=@n*frand from SHvwRand
RETURN @n
END
GO
SELECT CHAR(95)
SELECT ASCII('9')
--主随机字串函数
ALTER FUNCTION SHRandStr
--随机字符串
(
@m int
)
RETURNS varchar(8000)
AS
BEGIN
DECLARE @l int,@i int,@r varchar(8000),@s varchar(8000)
set @l=0
set @r=''
while @l<@m
begin
set @i=@m/10+dbo.SHrandom(@m*9/10)+1
if @i+@l>@m
SET @i=@m-@l
set @s=space(@i)
set @s=replace(@s,' ',char(33+dbo.SHrandom(90)))
set @r=@r+@s
set @l=@l+@i
end
RETURN @r
END
GO
--插入10000条随机用户过程
CREATE PROCEDURE SHUSERS_INSERT--插入10000条随机用户
AS
DECLARE @USERCOUNT INT
SET @USERCOUNT=1
WHILE @USERCOUNT<=10000
BEGIN
INSERT INTO USERS SELECT UID=IDENTITY(INT,1,1),UNAME=DBO.SHRANDSTR(10),UPWD=DBO.SHRANDSTR(10),UREG=GETDATE(),USEX=0,USTATE=0,UPOINT=0
SET @USERCOUNT=@USERCOUNT+1
GO