快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

在ASP中如何创建动态表--调用如下SP_EXECUTE

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应用中如何限制同一表单被多次提交!!!!好东西
    微笑服务 优质保证 索取样品