日期:2014-05-18  浏览次数:20509 次

存储过程实现删除表
我想写一个存储过程,来删除表。存储过程包含一个参数就是表的名字。我删除sail表时,我就把表名字传给这个存储过程,存储过程就判断这个表是否存在,存在就删除,不存在不做任何处理~~~~~~~

------解决方案--------------------
SQL code

if object_id('pro_test')is not null
drop proc pro_test
go
create proc pro_test @tblname varchar(20)
as
declare @str varchar(200)
set @str=
'if object_id('+quotename(@tblname,'''')+') is not null
 drop table '+@tblname
print @str
exec(@str)

--TRY

------解决方案--------------------
SQL code
if OBJECT_ID('test','P')is not null
drop proc test
go
create proc test
( 
   @table_name   varchar(max)
)
as
declare @sql varchar(max)
set @sql='' 
select @sql=@sql+'if object_id('+''''+@table_name+''''+') is not null drop table +'+@table_name+'+'+''

exec (@sql)