如何批量删除数据库中同一字段开头的表?
数据库中有织梦的数据dede_开头还有其他discuz程序的数据表pre_开头现在需要彻底删掉数据库中织梦的表如何批量删除?求删除代码谢谢!!!!!...
数据库中有织梦的数据dede_开头
还有其他discuz程序的数据表pre_开头
现在需要彻底删掉数据库中织梦的表
如何批量删除?求删除代码 谢谢!!!!! 展开
还有其他discuz程序的数据表pre_开头
现在需要彻底删掉数据库中织梦的表
如何批量删除?求删除代码 谢谢!!!!! 展开
4个回答
2015-08-12 · 知道合伙人数码行家
关注
展开全部
--SQL批量删除数据表中指定字段对应的所有约束
--定义要操作的数据表名变量
declare @TableName nvarchar(250)
set @TableName='数据表名'
--定义要操作的字段名变量
declare @ColumnName nvarchar(250)
set @ColumnName='字段名'
--定义当前查询的约束变量
declare @ConstraintName varchar (250)
--声明读取数据表中指定字段对应的所有约束列表游标
declare mycursor cursor for select name from sysobjects left join sysconstraints on sysconstraints.constid=sysobjects.id where parent_obj=OBJECT_ID(''+@TableName+'') and colid=(select colid from syscolumns where id=OBJECT_ID(''+@TableName+'') and OBJECTPROPERTY(id, N'IsUserTable') = 1 and upper(name)=upper(@ColumnName))
--打开游标
open mycursor
--从游标里取出数据赋值到主键约束名称变量中
fetch next from mycursor into @ConstraintName
--如果游标执行成功
while (@@fetch_status=0)
begin
--删除当前找到的约束
--print '当前删除语句'+'ALTER TABLE ['+@TableName+'] DROP CONSTRAINT ['+@ConstraintName+']'
exec ('ALTER TABLE ['+@TableName+'] DROP CONSTRAINT ['+@ConstraintName+']')
print '已成功删除数据表['+@TableName+']字段['+@ColumnName+']对应的约束['+@ConstraintName+']'
--用游标去取下一条记录
fetch next from mycursor into @ConstraintName
end
--关闭游标
close mycursor
--撤销游标
deallocate mycursor
--定义要操作的数据表名变量
declare @TableName nvarchar(250)
set @TableName='数据表名'
--定义要操作的字段名变量
declare @ColumnName nvarchar(250)
set @ColumnName='字段名'
--定义当前查询的约束变量
declare @ConstraintName varchar (250)
--声明读取数据表中指定字段对应的所有约束列表游标
declare mycursor cursor for select name from sysobjects left join sysconstraints on sysconstraints.constid=sysobjects.id where parent_obj=OBJECT_ID(''+@TableName+'') and colid=(select colid from syscolumns where id=OBJECT_ID(''+@TableName+'') and OBJECTPROPERTY(id, N'IsUserTable') = 1 and upper(name)=upper(@ColumnName))
--打开游标
open mycursor
--从游标里取出数据赋值到主键约束名称变量中
fetch next from mycursor into @ConstraintName
--如果游标执行成功
while (@@fetch_status=0)
begin
--删除当前找到的约束
--print '当前删除语句'+'ALTER TABLE ['+@TableName+'] DROP CONSTRAINT ['+@ConstraintName+']'
exec ('ALTER TABLE ['+@TableName+'] DROP CONSTRAINT ['+@ConstraintName+']')
print '已成功删除数据表['+@TableName+']字段['+@ColumnName+']对应的约束['+@ConstraintName+']'
--用游标去取下一条记录
fetch next from mycursor into @ConstraintName
end
--关闭游标
close mycursor
--撤销游标
deallocate mycursor
展开全部
删除语句的where条件中:这些数据所在的列名 like ‘dede_%’ 就可以了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select 'drop table '||t.table_name' purge;' from user_tables t
where t.table_name like 'dede_';
把查询结果粘贴出来执行就行了。。
其他的情况只需要修改where条件即可。
where t.table_name like 'dede_';
把查询结果粘贴出来执行就行了。。
其他的情况只需要修改where条件即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
删除语句的where条件中:这些数据所在的列名 like ‘dede_%’ 就可以了
delete from table_aa where 列名 like 'dede_%';
delete from table_aa where 列名 like 'dede_%';
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询