[英]Get distinct values from each table and each column with SQL Server
我想遍歷給定數據庫的每個表,以獲得每個char字段的唯一值。
我的查詢可能類似於:
for each table:
for each row in table:
select distinct char_field
from table
loop
loop
我該怎么做呢?
像這樣嘗試
DECLARE cur CURSOR FOR
SELECT 'SELECT DISTINCT ' + QUOTENAME(c.COLUMN_NAME) + 'AS ' + QUOTENAME(TABLE_CATALOG + '.' + TABLE_SCHEMA + '.' + TABLE_NAME) + ' FROM ' + QUOTENAME(TABLE_CATALOG) + '.' + QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
FROM INFORMATION_SCHEMA.COLUMNS AS c
WHERE c.DATA_TYPE LIKE '%char%'
DECLARE @cmd VARCHAR(MAX);
OPEN cur;
FETCH NEXT FROM cur INTO @cmd;
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @cmd
EXEC(@cmd);
FETCH NEXT FROM cur INTO @cmd;
END
CLOSE cur;
DEALLOCATE cur;
此過程將打開一個游標,其中包含所有表的所有列,其中數據類型包含char
。 它將創建一條語句以選擇所有不同的值,然后一個接一個地執行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.