--定义要 *** 作的数据表名变量
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 varchar(100)
declare @SQL varchar(500)
declare curselect cursor local for
select name from sysobjects where xtype ='u'
open curselect
fetch next from curselect into @Tablename
while @@FETCH_STATUS = 0
begin
Set @SQL = 'drop table ' + @TableName
execute(@SQL)
fetch next from curselect into @Tablename
end
deallocate curselect
SQL直接批量删除表的方法步骤:
所需工具原料:phpmyadmin。
1.数据 *** 作前进行数据备份。
2.看需要删除表的时间段,即什么时间开始到什么时间截至。记录下数据表名称和时间字段名称。
3.点击上部"SQL"按钮,进行sql语句执行。
4.打开文本框中输入命定执行:
delete from wp_posts where `post_date` >='2010-01-01 00:00:00' and `post_date` < '2014-12-14 22:00:00:00'。
【命令语句意思】:从wp_posts数据表的post_date字段中检索文章创建日期在2010年1月1日0时和2014年12月14日22时之间的数据进行删除 *** 作。
5.成功后点击上部“浏览”按钮查看,表被删除,sql执行语句成功。
删除指令解析:
1.全部删除:delete from table 。
2.部分删除:delete from table a where nuid in(select nuid from table B)。
注意事项:
1.进行数据库 *** 作前须要进行数据库备份。
2.数据库 *** 作是删除数据文本,图片等上传文件不会受到影响。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)