2016-02-21 122 views
-4

我有一個包含大量表的數據庫。 在每個表中都有一個名爲「LicenseID」(bigint)的列。如何刪除所有表中包含「LicenseID」列中值「2」的所有行? 此致敬禮!刪除所有表中的特定行

+0

歡迎使用stackoverflow。請閱讀[問]。提示:你需要展示你的努力。 –

+0

謝謝大家的回覆。 我正在使用Microsoft SQL Server數據庫。另外,我需要從所有表中刪除行(行中包含「LicenseID」列中的值2)。順便說一句,我不是說像22,32等數值......只是絕對值2. – Kasper555

回答

0

你沒有提到你正在使用哪個數據庫。

我認爲它是SQL Server的 首先檢查你的結果與下面的查詢

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

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

然後在上述情況下刪除所有的行。

DELETE FROM table WHERE LicenseID LIKE '%2%' 

DELETE FROM table WHERE Contains(LicenseID, 2) > 0 

我沒有測試它和你使用的是什麼類型的數據庫不知道。答案在不同的數據庫中可能會有所不同。

+0

他想調整一下所有的數據庫表格,而不是一個一個的 – sagi

+0

這個問題用[tag: SQL服務器] ... –

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列的表中的錯誤的原因。