读书人

帮忙看看哪儿的错,该怎么处理

发布时间: 2012-01-23 21:57:28 作者: rapoo

帮忙看看哪儿的错
alter PROCEDURE CEMIS_DelDbObject

AS
BEGIN
DECLARE @parm_type varchar(100)
DECLARE @parm_name varchar(100)

--检索所有系统对象
DECLARE DbObjectCursor CURSOR FOR
select [name],[type] from sysobjects
OPEN DbObjectCursor
FETCH NEXT FROM DbObjectCursor INTO @parm_name,@parm_type
WHILE @@FETCH_STATUS=0
Begin
--视图

if(@parm_type='V')
begin
drop view @parm_name;
end
--存储过程
if(@parm_type='p')
begin
DROP PROCEDURE @parm_name;
end
--触发器
if(@parm_type='TR')
begin
DROP TRIGGER @parm_name;
end
--函数
if(@parm_type='fn')
begin
DROP FUNCTION @parm_name;
end
FETCH NEXT FROM DbObjectCursor INTO @parm_name,@parm_type
end
CLOSE DbObjectCursor
DEALLOCATE DbObjectCursor
END
GO


报错

消息 102,级别 15,状态 1,过程 CEMIS_DelDbObject,第 24 行
'@parm_name' 附近有语法错误。
消息 102,级别 15,状态 1,过程 CEMIS_DelDbObject,第 29 行
'@parm_name' 附近有语法错误。
消息 102,级别 15,状态 1,过程 CEMIS_DelDbObject,第 34 行
'@parm_name' 附近有语法错误。
消息 102,级别 15,状态 1,过程 CEMIS_DelDbObject,第 39 行
'@parm_name' 附近有语法错误。


[解决办法]
exec(' drop view '+ @parm_name+)
---全部换成这样

读书人网 >SQL Server

热点推荐