zoukankan      html  css  js  c++  java
  • SQL SERVER如何删除以xx开头的所有表

    SQL SERVER如何删除以xx开头的所有表

    SQL SERVER如何删除以xx开头的表呢?运行下面的sql脚本就可以实现(任选一种)。

     方法一:运行下面的存储过程可以实现SQLServer如何删除以xx开头的所有表 

       注:将下方的table_name like 'xx_%' 换成你的表即可 (多一个下换线)

    --将下方的table_name like 'xx_%' 换成你的表即可
    --如果表名含有中文,就需要用nvarchar 和 N''
    declare cur cursor
    read_only
    for select distinct table_name from information_schema.columns where table_name like N'xx_%'
    
    declare @name nvarchar(40),@sql nvarchar(1000)
    open cur
    
    fetch next from cur into @name
    while (@@fetch_status =0)
       begin
       set @sql ='DROP TABLE ' + @name
       exec (@sql)
       fetch next from cur into @name
    end
    
    close cur
    deallocate cur
    go
    

    执行完成后,刷新一下表,就可以看到原来的表已经被彻底删除掉了。  

     补充说明
    1,英文SQLServer里有中文表名,会提示错误: Incorrect syntax near '?'. 

    解决办法: --如果报错:Incorrect syntax near '?'.  ,只要将varchar(40)改为nvarchar(40),即可解决。

    2,如果英文SQLServer里有中文表名,可执行成功但是刷新后xx开头的所有表都还在。

     解决办法: --执行成功但没有删除任何中文名的表, 只要将 like 'XX_%' 改为 like N'XX_%',即可解决。

    方法二:运行下面的sql脚本可以实现SQLServer如何删除以xx开头的所有表 

       注:将下方的table_name like 'xx_%' 换成你的表即可 (多一个下换线)

    --如果表名含有中文,就需要用nvarchar 和 N''
    DECLARE @strSQL NVARCHAR(MAX)
    SET @strSQL=''
    SELECT @strSQL=@strSQL+'drop table '+[name] from sysobjects 
    WHERE [type]='U' and (([name] like N'XX_%') )
    EXEC(@strSQL)
    

      

     

    ··

    ·

    人生只若初见................
  • 相关阅读:
    Scrapy爬虫快速入门
    python垃圾回收机制
    django项目的uwsgi方式启停脚本
    hdu 5504 GT and sequence
    python 在 for i in range() 块中改变 i 的值的效果
    linux 在终端中打开图形化文件管理器
    apache 支持 php
    Mysql 学习记录
    git 导入代码到已有仓库
    python import 自己的包
  • 原文地址:https://www.cnblogs.com/05-hust/p/15405800.html
Copyright © 2011-2022 走看看