|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
CREATE PROCEDURE sp_createnew_bbscontent @tabname varchar(200)=\\\'\\\', @boardid int AS declare @tri_inst_name nvarchar(100) declare @tri_up_name nvarchar(100) declare @tri_del_name nvarchar(100) declare @deltab nvarchar(100) declare @st nvarchar(2000) select @tri_inst_name=\\\'inst_bbsContent\\\'+LTRIM(RTRIM(str(@Boardid))) select @tri_up_name=\\\'up_bbsContent\\\'+LTRIM(RTRIM(str(@Boardid))) select @tri_del_name=\\\'delete_bbsContent\\\'+LTRIM(RTRIM(str(@Boardid))) select @deltab=\\\'drop table \\\'+@tabname if len(@tabname)=0 return if exists (select * from sysobjects where id = object_id(@tabname) and OBJECTPROPERTY(id, N\\\'IsUserTable\\\') = 1) exec sp_executesql @deltab select @st=\\\'CREATE TABLE \\\'+@tabname+ \\\'( AnnounceID int identity (1, 1) NOT NULL , ParentID int default (0) NULL , Child int default (0) NULL , User_id int NULL , boardID int NULL , Topic nvarchar (255) NULL , Body ntext NULL , DateAndTime datetime default (getdate()) NULL , Hits int default (0) NULL , Length int default (0) NULL , RootID int default (0) NULL , Layer tinyint default (1) NULL , Orders int default (0) NULL , Ip nvarchar (20) default (0) NULL , Expression nvarchar (50) NULL , Forbid tinyint default(0) NULL )\\\' exec sp_executesql @st select @st=\\\'CREATE TRIGGER \\\'+ @tri_inst_name+\\\' ON \\\'+@tabname+ \\\' FOR INSERT AS declare @rid integer,@pid integer select @pid=ParentId from inserted if @pid = 0 begin select @rid =@@identity update \\\'+ @tabname+\\\' set rootid=@rid where AnnounceID=@rid end\\\' exec sp_executesql @st select @st=\\\'CREATE TRIGGER \\\'+ @tri_up_name+\\\' ON \\\'+@tabname+ \\\' FOR UPDATE AS declare @pid int ,@rid int,@forbid tinyint if update(forbid) begin select @pid = parentid,@rid = rootid,@forbid=forbid from inserted /* 假如其父没有开放 则不能开放 */ if exists ( select * from \\\'+@tabname +\\\' where AnnounceID = @pid and Forbid!= 0 ) begin rollback transaction return end update \\\'+@tabname+ \\\' set forbid=@forbid where rootid=@rid and parentid>@pid end\\\' exec sp_executesql @st select @st=\\\'CREATE TRIGGER \\\'+ @tri_del_name+\\\' ON \\\'+@tabname+ \\\' FOR DELETE AS declare @pid int ,@rid int select @pid = parentid,@rid = rootid from deleted delete from \\\'+@tabname +\\\' where rootid=@rid and parentid>@pid\\\' 返回类别: 教程 上一教程: ASP讲座之五:ASP组件 下一教程: RS.OPEN SQL,CONN,1,1全接触 您可以阅读与"在ASP中如何创建动态表--调用如下SP_EXECUTE"相关的教程: · 在ASP中如何创建动态表-调用如下SP_EXECUTESQL · 如何在pb中创建COM组件,并在asp中调用并返回结果集? · 如何在PB中创建COM组件,并在ASP中调用并返回结果集 · ASP中如何调用存储过程 · 在ASP应用中如何限制同一表单被多次提交!!!!好东西 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |