如何使用参数,请关注

greathong 2003-10-07 07:12:50
一般情况,使用如下语句,删除表
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'test' AND type = 'P')
DROP table test
其中 test 为表名

我如何 动态设置表名,以方便删除表,如何写一个存储过程或其他?
...全文
27 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
leus 2003-10-07
  • 打赏
  • 举报
回复
刚才忘了重要的一句,修改一下
IF EXISTS (SELECT name
FROM sysobjects
WHERE name = N'sp_droptable'
AND type = 'P')
DROP PROCEDURE sp_droptable
GO

CREATE PROCEDURE sp_droptable
@tablename varchar(20)
AS
declare @sql varchar(200)
set @sql='IF EXISTS (SELECT name FROM sysobjects
WHERE name = '''+@tablename+''' AND type = ''P'')
DROP table '+@tablename
exec(@sql)
GO
leus 2003-10-07
  • 打赏
  • 举报
回复
每次传入参数就可以了
leus 2003-10-07
  • 打赏
  • 举报
回复
IF EXISTS (SELECT name
FROM sysobjects
WHERE name = N'sp_droptable'
AND type = 'P')
DROP PROCEDURE sp_droptable
GO

CREATE PROCEDURE sp_droptable
@tablename varchar(20)
AS
declare @sql varchar(200)
set @sql='IF EXISTS (SELECT name FROM sysobjects
WHERE name = '''+@tablename+''' AND type = ''P'')
DROP table '+@tablename
GO
zjcxc 元老 2003-10-07
  • 打赏
  • 举报
回复
--用exec就行了,如下面的例子:


declare @tbname varchar(250)
set @tbname='要删除的表名'

if exists(select 1 from sysobjects where name=@tbname and type='U')
exec('drop table '+@tbname)

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧