【求教】如何删除指定数据库的视图、函数、过程、触发器?

mathsfan 2010-04-24 03:56:44
select * from DB1.dbo.viewIQC
这样可以查询指定数据库的视图,
而删除的话:
drop view DB1.dbo.viewIQC
报错,请问我该如何删除指定的视图呢?
...全文
133 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
mathsfan 2010-04-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 happycell188 的回复:]
SQL code
'慎重使用''慎重使用''慎重使用''慎重使用''慎重使用''慎重使用''慎重使用''慎重使用''慎重使用'
--删除数据库 test 中所有的数据表
declare @sql varchar(1000)
set @sql='drop table '+stuff((select ','+ltrim(rtrim(name)) from (select name from t……
[/Quote]
谢谢,for xml path好像sql 2000没有,不过sql 2000有for xml哈,也可以变相解决我的问题。
mathsfan 2010-04-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 happycell188 的回复:]
SQL code
'慎重使用''慎重使用''慎重使用''慎重使用''慎重使用''慎重使用''慎重使用''慎重使用''慎重使用'
--删除数据库 test 中所有的数据表
declare @sql varchar(1000)
set @sql='drop table '+stuff((select ','+ltrim(rtrim(name)) from (select name from t……
[/Quote]
报错了呢,我再试一下...
mathsfan 2010-04-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xys_777 的回复:]
引用 5 楼 mathsfan 的回复:
从报的错误可以看出这并非权限问题,你可以试一下哈

服务器: 消息 166,级别 15,状态 1,行 1
'DROP VIEW' 不允许将数据库名称指定为对象名前缀。

那就 先加一句 use [db1]
[/Quote]
不好意思,我是在存储过程里写的功能,不可以有use
htl258_Tony 2010-04-24
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xys_777 的回复:]
引用 5 楼 mathsfan 的回复:
从报的错误可以看出这并非权限问题,你可以试一下哈

服务器: 消息 166,级别 15,状态 1,行 1
'DROP VIEW' 不允许将数据库名称指定为对象名前缀。

那就 先加一句 use [db1]
[/Quote]同意。
永生天地 2010-04-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 mathsfan 的回复:]
从报的错误可以看出这并非权限问题,你可以试一下哈

服务器: 消息 166,级别 15,状态 1,行 1
'DROP VIEW' 不允许将数据库名称指定为对象名前缀。
[/Quote]
那就 先加一句 use [db1]
喜-喜 2010-04-24
  • 打赏
  • 举报
回复
'慎重使用''慎重使用''慎重使用''慎重使用''慎重使用''慎重使用''慎重使用''慎重使用''慎重使用'
--删除数据库 test 中所有的数据表
declare @sql varchar(1000)
set @sql='drop table '+stuff((select ','+ltrim(rtrim(name)) from (select name from test..sysobjects where type='U')t for xml path('')),1,1,'')
exec(@sql)
--删除数据库 test 中所有的视图
declare @sql varchar(1000)
set @sql='drop view '+stuff((select ','+ltrim(rtrim(name)) from (select name from test..sysobjects where type='V')t for xml path('')),1,1,'')
exec(@sql)
--删除数据库 test 中所有的函数
declare @sql varchar(1000)
set @sql='drop function '+stuff((select ','+ltrim(rtrim(name)) from (select name from test..sysobjects where type='TF')t for xml path('')),1,1,'')
exec(@sql)
--删除数据库 test 中所有的存储过程
declare @sql varchar(1000)
set @sql='drop proc '+stuff((select ','+ltrim(rtrim(name)) from (select name from test..sysobjects where type='P')t for xml path('')),1,1,'')
exec(@sql)
--删除数据库 test 中所有的触发器
declare @sql varchar(1000)
set @sql='drop trigger '+stuff((select ','+ltrim(rtrim(name)) from (select name from test..sysobjects where type='TR')t for xml path('')),1,1,'')
exec(@sql)
mathsfan 2010-04-24
  • 打赏
  • 举报
回复
从报的错误可以看出这并非权限问题,你可以试一下哈

服务器: 消息 166,级别 15,状态 1,行 1
'DROP VIEW' 不允许将数据库名称指定为对象名前缀。

gw6328 2010-04-24
  • 打赏
  • 举报
回复
接分。
dawugui 2010-04-24
  • 打赏
  • 举报
回复
也许你的登录帐号只有查询权限,没有删除权限.
mathsfan 2010-04-24
  • 打赏
  • 举报
回复
LS的这个应该是删除当前数据库的吧?继续等答案...
dawugui 2010-04-24
  • 打赏
  • 举报
回复
drop view viewIQC

34,594

社区成员

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

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