如何檢查給定表中的任何列是否只有空值或空字符串值?我能以某種方式擴展數據庫中的每個表嗎?檢查空列
Q
檢查空列
0
A
回答
1
您通常無法對錶中所有列的查詢進行查詢。你必須選擇你想要的列。爲了解決這個問題,你需要動態的sql和information_schema視圖。
2
Here是一個存儲過程,用於在數據庫中查找任意值。這是一個相當小的修改,使其搜索空列。
該過程生成數據庫中所有表和所有列的列表,並創建一個用於存儲結果的臨時表。然後它生成一個動態SQL並使用INSERT INTO ... EXEC填充結果表。
2
這裏的a runnable example關閉StackOverflow的數據庫:
-- Look for NULLs
DECLARE @sql AS varchar(max)
SELECT @sql = COALESCE(@sql + ' UNION ALL ', '') + sql
FROM (
SELECT 'SELECT ''' + c.TABLE_NAME + '.' + c.COLUMN_NAME + ''' AS COLUMN_NAME, COUNT(NULLIF(' + QUOTENAME(c.COLUMN_NAME) + ', '''')) AS NON_NULL_COUNT, COUNT(*) AS TOTAL_COUNT FROM ' + QUOTENAME(c.TABLE_CATALOG) + '.' + QUOTENAME(c.TABLE_SCHEMA) + '.' + QUOTENAME(c.TABLE_NAME) AS sql
FROM INFORMATION_SCHEMA.COLUMNS AS c
INNER JOIN INFORMATION_SCHEMA.TABLES AS t
ON t.TABLE_CATALOG = c.TABLE_CATALOG
AND t.TABLE_SCHEMA = c.TABLE_SCHEMA
AND t.TABLE_NAME = c.TABLE_NAME
WHERE c.DATA_TYPE IN ('nvarchar', 'varchar')
UNION ALL
SELECT 'SELECT ''' + c.TABLE_NAME + '.' + c.COLUMN_NAME + ''' AS COLUMN_NAME, COUNT(' + QUOTENAME(c.COLUMN_NAME) + ') AS NON_NULL_COUNT, COUNT(*) AS TOTAL_COUNT FROM ' + QUOTENAME(c.TABLE_CATALOG) + '.' + QUOTENAME(c.TABLE_SCHEMA) + '.' + QUOTENAME(c.TABLE_NAME) AS sql
FROM INFORMATION_SCHEMA.COLUMNS AS c
INNER JOIN INFORMATION_SCHEMA.TABLES AS t
ON t.TABLE_CATALOG = c.TABLE_CATALOG
AND t.TABLE_SCHEMA = c.TABLE_SCHEMA
AND t.TABLE_NAME = c.TABLE_NAME
WHERE c.DATA_TYPE NOT IN ('nvarchar', 'varchar')
AND c.IS_NULLABLE = 'YES'
) AS checks
SET @sql = 'SELECT * FROM (' + @sql + ') AS checks WHERE NON_NULL_COUNT = 0'
EXEC (@sql)
有幾件事情需要注意:
有兩列能找到,這是完全空/空:
Posts.OwnerDisplayName,Bdges .CreationDate
它將nvarchar和varchar列的''轉換爲NULL(如果您有char或nchar列,則必須c這個)
相關問題
- 1. vba - 檢查空陣列
- 2. 檢查列是否爲空
- 3. PHP multidimetional陣列空檢查
- 4. 檢查大量空白列
- 5. 檢查空的XML列
- 6. 檢查列表爲空或則空檢查SQL
- 7. 檢查列是否爲空或空
- 8. 檢查其他列列是否爲空
- 9. 檢查空陣列和刪除空陣列
- 10. 多空檢查
- 11. 空檢查C + +
- 12. 空值檢查
- 13. $ _POST檢查空
- 14. 空檢查
- 15. 空檢查
- 16. objectForKey空檢查
- 17. 檢查空值
- 18. 檢查空串
- 19. PHP檢查空
- 20. 如何檢查python中的空列
- 21. 數據幀,檢查列是否爲空
- 22. 檢查MySQL列是否爲空
- 23. 如何檢查列表是否爲空?
- 24. 檢查列是否允許空值,C#?
- 25. 很好看:檢查空列表
- 26. SQLDataReader如何檢查空列值?
- 27. 檢查arraytype列是否包含空值
- 28. JQuery檢查空的列表框項目
- 29. Java ArrayList - 檢查列表是否爲空
- 30. np.where在熊貓,檢查空列表
我意識到我必須使用動態sql。這是爲了維護 – picknick 2010-05-28 18:00:11