+ -
当前位置:首页 → 问答吧 → 怎么批量删除表中的某个列名

怎么批量删除表中的某个列名

时间:2011-12-06

来源:互联网

数据库中有100多个表,其中有些表有该列 upsize_ts (大概几十个表有)

怎么用一个SQL就可以删除该库中的所有表的列upsize_ts ,不用一个个的改

作者: Mapleleaf123   发布时间: 2011-12-06

动态拼接。

作者: fredrickhu   发布时间: 2011-12-06

关联系统表,游标删

作者: geniuswjt   发布时间: 2011-12-06

SQL code
DECLARE @s NVARCHAR(max)
SET @s=''
SELECT @s=@s+' alter table ['+TABLE_SCHEMA+'].['+TABLE_NAME+'] drop column ID;'
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE COLUMN_NAME='ID' AND     objectproperty(OBJECT_ID(Table_Name),'IsUserTable')=1

EXEC(@s)


以字段ID為例,要看這個字段有沒有被引用,被引用時刪不了

作者: roy_88   发布时间: 2011-12-06

SQL code


 EXEC sp_MSforeachtable @command1="if exists(Select 1 From syscolumns where id=object_id('?') and name ='ACC') alter table ? drop column Acc"
--如果有外键不知道会怎么样哦
--ACC替换成你要删除的字段

作者: mustudent   发布时间: 2011-12-06