批量删除存储过程和批量修改存储过程

批量删除存储过程和批量修改存储过程
修改:

declare proccur cursor
    for
    select [name] from sysobjects where name like 'Foods_%'
declare @procname varchar(100)
declare @temp varchar(100)
open proccur
fetch next from proccur into @procname
while(@@FETCH_STATUS = 0)
begin  
    set @temp='kcb_'+@procname
    EXEC SP_RENAME @procname,@temp
  
    print(@procname + '已被删除')
    fetch next from proccur into @procname
end
close proccur
deallocate proccur

详细实例

批量修改表的所有者:  

EXEC   sp_MSforeachtable   'exec   sp_changeobjectowner   ''?'',''dbo''   '  
单个修改表所有者:  
exec   sp_changeobjectowner   '要改的表名','dbo' 

批量修改存储过程的存储过程:

CREATE   PROCEDURE   ChangeProcOwner       @OldOwner as   NVARCHAR(128),--参数原所有者       @NewOwner as   NVARCHAR(128)--参数新所有者       AS             DECLARE   @Name   as   NVARCHAR(128)         DECLARE   @Owner as   NVARCHAR(128)       DECLARE   @OwnerName as   NVARCHAR(128)             DECLARE   curObject   CURSOR   FOR         select 'Name' =   name,       'Owner' =   user_name(uid)       from   sysobjects       where   user_name(uid)=@OldOwner   and   xtype='p'       order   by   name             OPEN     curObject       FETCH   NEXT   FROM   curObject   INTO   @Name,   @Owner       WHILE(@@FETCH_STATUS=0)       BEGIN               if   @Owner=@OldOwner         begin       set   @OwnerName   =   @OldOwner   +   '.'   +   rtrim(@Name)       exec   sp_changeobjectowner   @OwnerName,   @NewOwner       end             FETCH   NEXT   FROM   curObject   INTO   @Name,   @Owner       END             close   curObject       deallocate   curObject       GO  执行 exec   ChangeProcOwner   'xx','dbo'
或者
exec   ChangeProcOwner   '?','dbo'

还有一种方法:

--如果一个数据库教程中(表和存储过程)有多个用户名,而要把它所有都改成dbo 就可以用如下的语句

Select 'sp_changeobjectowner ''' + User_Name(Uid) + '.' + name + ''',''dbo'' ' From sysobjects Where Uid Not in (User_ID('dbo')) And Type In ('U','P')

删除:

先看单删除的

sqlserver 2005一次只能删除一个存储过程,如果多了,需要很长时间才能删完,所以写了一段语句,直接就把当然数据库下所有用户自定义的存储过程给drop了。不过使用都请留心,当前打开的数据库哦。下面贴代码

declare proccur cursor
    for
        select [name] from sysobjects where type='P'
declare @procname varchar(100)
open proccur
fetch next from proccur into @procname
while(@@FETCH_STATUS = 0)
begin  
    --exec('drop proc ' + @procname)  --本句被注释,使用时请取消

    print(@procname + '已被删除')
    fetch next from proccur into @procname
end
close proccur
deallocate proccur

 

再看批量删除存储过程

declare proccur cursor
    for
    select [name] from sysobjects where name like 'Users_%'
declare @procname varchar(100)
open proccur
fetch next from proccur into @procname
while(@@FETCH_STATUS = 0)
begin  
    exec('drop proc ' + @procname)
    print(@procname + '已被删除')
    fetch next from proccur into @procname
end
close proccur
deallocate proccur

时间: 2024-08-24 15:44:33

批量删除存储过程和批量修改存储过程的相关文章

sql批量删除数据与批量删除数据库表语句

游标删除方法  代码如下 复制代码 //定义游标 DECLARE tables_cursor CURSOR FOR SELECT name FROM sysobjects WHERE type = 'U' //选择用户表名 OPEN tables_cursor //打开游标连接   DECLARE @tablename sysname // 定义变量 FETCH NEXT FROM tables_cursor INTO @tablename //结果集中一行一行读取表名 WHILE (@@FET

小米怎么批量删除联系人?小米批量删除联系人教程

1)在小米手机桌面我们点击[设置]进入后找到[联系人]按钮点击进入:(如下图)       2)在联系人界面我们点击[联系人整理]进入之后再点击[批量删除联系人]打开进入效果如下:(如下图)       3)现在我们选中要删除的联系人,再点击[删除]之后弹出界面之后我们再点击[删除联系人]即可.(如下图)     注意:这样批量删除的联系人是无法再恢复的所以各位一定要注意备份了.

新浪微博怎么批量删除?微博批量删除工具

进入新浪微博的应用广场,搜索"删除管理工具". 如图:    点击"立即使用"按钮,然后为该应用授权,就会打开如下图所示的微博批量删除界面.    把需要删除的微博的右上角的多选框选中,然后点击删除按钮即可.另外删除之前还可以使用该界面左下角还有一键备份微博工具备份一下,以免误删

微信怎么批量删除消息 微信批量删除消息方法分享

各位微信软件的用户们来详细的解析分享一下微信批量删除消息的方法. 方法分享: 1.打开聊天界面,长按某个消息. 2.在弹出选项里选择[更多]. 3.这时长按的那个消息被勾选了,同时其他消息也出现了勾选框. 4.勾选需要一起删除的消息. 5.选择底栏的[删除]图标. 6.确认的话就点击[删除]即可完成一起删除消息. 好了,以上的信息就是小编给各位微信的这一款软件的用户们带来的详细的微信批量删除消息的方法解析分享的全部内容了,各位看到这里的用户们小编相信你们现在是很清楚了批量删除消息的方法了吧,,那

LINQ To SQL在N层应用程序中的CUD操作、批量删除、批量更新

原文:LINQ To SQL在N层应用程序中的CUD操作.批量删除.批量更新 0. 说明     Linq to Sql,以下简称L2S.    以下文中所指的两层和三层结构,分别如下图所示:       准确的说,这里的分层并不是特别明确:(1) 生成的DataContext(Linq t0 SQL Runtime)和Entity是放在一个文件中的,物理上不能切割开来:上图只是展示逻辑上的结构.(2) 拿上图右边的三层结构来说,鉴于第(1)点,UI层就可以跨越BusinessLogic层,直接

使用shell批量删除软件安装包

在使用rpm -e 卸载某个应用软件时,发现有一些相关联的安装包,又不想一个一个的去执行卸载命令,于是想到用脚本批量的将其一次性卸载. #!/bin/bash #uninstall software related packages #批量删除软件相关联包 #2012-10-21 read -p "Enter the package name: " pack_name rpm -qa | grep $pack_name > pack_list.sh #生成一个临时脚本 sed -

PHP批量删除、清除UTF-8文件BOM头的代码实例_php实例

记得运行代码前先把文件备份一下哦,避免出现失败问题. 代码一: function checkBOM ($filename) { global $auto; $contents = file_get_contents($filename); $charset[1] = substr($contents, 0, 1); $charset[2] = substr($contents, 1, 1); $charset[3] = substr($contents, 2, 1); if (ord($char

在SQL Server 2005修改存储过程

server|存储过程     初次使用SQL Server 2005时,在修改了存储过程后竟然不知道如何保存.    我在SQL Server Management Studio的Progammability中找到相应的存储过程,点击右键并选择"Modify",会打开编辑窗口,我修改后点击保存,却出现"Save File As"对话框,让我选择保存的路径和文件名,也就是保存为另外一个文件,而不是直接保存修改的存储过程.不知道为什么要这样设计,我想一般人刚开始使用时

thinkPHP批量删除的实现方法分析_php实例

本文实例讲述了thinkPHP批量删除的实现方法.分享给大家供大家参考,具体如下: html: <li> <a class="delete" href="__URL__/deleteSelected/navTabId/__MODULE__" target="selectedTodo" posttype="string" calback="navTabAjaxMenu" rel='ids'

Mybatis批量删除数据操作方法_java

MyBatis的作用我想不用多说,今天说说MyBatis中的批量删除操作.废话不多说,先给大家一段代码片段!  <delete id="deleteByStandardIds"> delete from t_standard_catalog where standard_id in <foreach collection="array" item="standardId" open="(" close=&qu