先把表名取出來﹐然后再刪除記錄。declare @tb varchar(1000)
set @tb=''
select @tb=@tb+name+',' from bbs_board where id=?delete from bbs_board where id="+ID删除符合id等于ID的所有记录时set @tb ='drop table '+left(@tb,len(@tb)-1)
exec(@tb)  -->刪除表

解决方案 »

  1.   

    create procedure 存储过程名
    @id int    //表编号---对应bbs_board中id字段变量
    as
    declare @tablename varchar(30)
    select @tablename=board_table from bbs_board where id=@id
    begin
    delete from bbs_board where id=@id
    if exists(select [name] from sysobjects where type='u' and id=object_id(''@tablename''))
    exec('drop table ['+@tablename+']')
    end
      

  2.   

    To: hdhai9451(※★開拓者...脚妞伤了☆※) 能不能用触发器呢?
      

  3.   

    楼上的兄弟, lsxaa(小李铅笔刀)  有什么高见了,请指教。我感觉触发器好像不大适合此场合
      

  4.   

    哈哈,lsxaa(小李铅笔刀)你的名很有个性,我记住你了
      

  5.   

    to: chinaandys(风流泪,雨含笑) 
    没有了 你和To: hdhai9451(※★開拓者...脚妞伤了☆※) 方法 都是很好的我只是想如果经常执行 能不能用触发器做
      

  6.   

    to:lsxaa(小李铅笔刀)存储过程想执行,随时可执行,不想执行,对sql server的性能没有任何影响
      

  7.   

    请教:
    我的数据库中有个:bbs_board的表。其中有id,board_name和board_table等字段,
    其它board_table字段存放数据库中用户表的表名,
    现在我想利用
    "delete from bbs_board where id="+ID删除符合id等于ID的所有记录时。也删除表名存放在符合id等于ID的相应board_table字段中的数据表。
    请教该语句怎么写???