J'ai chargé les noms de colonnes d'une table dans la table temporaire appelée #COLUMN_NAMES
. Je voudrais construire une boucle while qui passe chacune des lignes de la table temporaire à travers ma table #Data_Quality_Check
que j'ai créée ci-dessous.Comment créer une boucle WHILE à l'aide de SQL Server 2014
Il existe actuellement 54 lignes de noms_colonnes dans ma table #Column_names
. Idéalement, j'aimerais que la boucle while traite chacune des variables et place la sortie dans le tableau #Data_Quality_Check
.
if object_id('tempdb..#COLUMN_NAMES') is not null
drop table #COLUMN_NAMES
SELECT COLUMN_NAME AS Column_Names
INTO #COLUMN_NAMES
FROM information_schema.columns
WHERE table_name = 'ssrs_sourcedata'
----- >>>> !!!!!! INSERT CODE TO BUILD WHILE LOOP !!!!
if object_id('tempdb..#DATA_QUALITY_CHECK') is not null
drop table #DATA_QUALITY_CHECK
SELECT
periodenddate,
'@Column_Name' AS Label,
MIN(@Column_Name) AS Min_Value,
MAX(@Column_Name) AS Max_Value,
SUM(@Column_Name) AS Sum_Value,
AVG(@Column_Name) AS Avg_Value,
SUM(Case when @Column_Name IS NULL THEN 1 ELSE 0 END) AS Null_Count,
SUM(Case when len(cast(@Column_Name AS VARCHAR)) = 0 THEN 1 ELSE 0 END) AS Space_Count,
MAX(len(cast(@Column_Name AS VARCHAR))) AS max_length,
MIN(len(cast(@Column_Name AS VARCHAR))) AS min_length
INTO
#DATA_QUALITY_CHECK
FROM
dbcrms.report.ssrs_sourcedata
WHERE
periodenddate = '2017-06-30'
GROUP BY
periodenddate
Cela ressemble peut-être à un bon cas pour un fichier UDF. –