从所有表中删除特定行

时间:2016-02-21 10:26:54

标签: sql-server

我有一个包含很多表的数据库。 在每个表中都有一个名为“LicenseID”(bigint)的列。如何从“LicenseID”列中删除包含值“2”的所有表中的所有行? 最好的问候!

2 个答案:

答案 0 :(得分:0)

您没有提到您正在使用哪个数据库。

我认为它是SQL Server 首先使用以下查询检查您的结果

var postDimensions = "server.php?width=" + w + "&height=" + h;

xhttp.open("GET", postDimensions , true

然后删除具有上述条件的所有行。

SELECT * FROM table WHERE LicenseID LIKE '%2%'

 SELECT * FROM table WHERE Contains(LicenseID, 2) > 0

我没有测试它,也不知道你使用的是什么类型的数据库。答案在不同的数据库中可能会有所不同。

答案 1 :(得分:0)

您可以使用INFORMATION_SCHEMA.COLUMNS动态生成删除语句。 这样的事情可以解决问题:

DECLARE @Sql varchar(max) = ''

SELECT @Sql = @Sql + 'DELETE FROM '+ TABLE_NAME +' WHERE LicenseID = 2; '
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE COLUMN_NAME = 'LicenseID'

EXEC(@Sql)

我使用INFORMATION_SCHEMA.COLUMNS而非INFORMATION_SCHEMA.TABLES的原因是为了防止在表格中包含LicenseID列时出现错误。