sql 问题 - MS-SQL Server / 基础类
在我执行
drop proc 存储过程名时
报错如下
消息 3701,级别 11,状态 5,第 1 行
无法对 过程'Pro_pri_deleteRoleRe' 执行 删除,因为它不存在,或者您没有所需的权限。
请问什么问题?
谢谢
declare @name varchar(20)
declare delete_sp cursor
for select name from sysobjects where xtype='p' and category='0' order by name asc
open delete_sp
fetch delete_sp into @name
while @@fetch_status = 0
begin
exec ('drop proc '+@name )
fetch next from delete_sp into @name
end
close delete_sp
deallocate delete_sp
这是我写的脚本该数据库有60+存储过程
运行上面脚本删除了一半但是另一半却提示错误
请看下上面错误
如果是数据库没有选中的话是不可能删除掉一半存储过程的
而且剩下的存储过程手动删除是可以删除的 但是用代码却不行
应该是没有那个过程
应该是没有那个存储过程了,可能你已经删过了
存储过程名不存在或选择的数据库不正确。
试试在删除时加所有者限制
select name, user_name(uid) owner from sysobjects where xtype='p' and category='0' order by name asc
exec ('drop proc '+quotename(@owner)+'.'+quotename(@name)+';' )
太悲剧了 存储过程果然不存在
因为声明用来保存存储过程名称的@name长度不够 导致存储过程名字被截断 所以无法删除
相关问答:
执行的顺序:
1)文件浏览框(选择文件使用)
选择好文件后
点击一个导入按钮的时候 ,把上面上传框里的csv文件以一个ID为文件名,上传到**/**文件夹下
2)读取这个文件夹下的csv的文件,转换成sql
3 ......
我一个项目,有个插入操作,具体是这样的:
我有进货信息表。在出货时选择相应的进货信息,输入数量,选择部门后,点保存按钮,由于网络延时,点一下没有反映,于是用户就又点一下,导致一次插入了两条记录:
例:
......
今天做了一个存储过程 环境是SQL2000数据库
大致如下
建立临时表
定义员工游标
循环员工(属于1个公司)
......
sql的软件在哪里可以下啊!在网上找了蛮多都用不了啊
随便搞一D版吧,
迅雷第一个就可以用
2000,2005都这样
http://119.147.41.16/down?cid=0698C2D64D7D637D90A6D2482298E6717D4F15CD&t=2&fmt=-1 ......
1。怎样使xp_cmdshell能完整输出超过255个字符的字符串。
2。select 时,检索速度是与from后的 TABLE顺序有关,还是与where条件的顺序有关(TABLE数据多少 )
在系统属性设定里有个选项,可以修改单字段输出字数限制. ......