У меня есть следующий запрос, который возвращает имена таблиц и имен полей из двух столбцов: пример записи образца: таблица = имя поля 'TABLOCTYP' = 'TYPDES', Запрос возвращает записи 206 строк. Мы используем SQL Server 2012.
SELECT
CODFIC_0 AS 'Table',
ATABZON.CODZONE_0 AS 'Field'
FROM LIVE.AMSKZON
INNER JOIN LIVE.ATABZON ON AMSKZON.CODTYP_0 = ATABZON.CODTYP_0
WHERE ATABZON.CODTYP_0 ='DES'
AND CODMSK_0 IS NOT NULL
GROUP BY CODFIC_0, ATABZON.CODTYP_0
ORDER BY 1
Изображение 1 - это результаты моего первого запроса
Я хочу взять эти результаты и передать их через, возможно, табличный параметр, может быть, все oop. Что-то вроде того, что ниже для каждой строки в моей таблице. Я не уверен, как это сделать с мира или сканирования может таблица.
DECLARE @table nvarch(15)
DECLARE @field nvarch(25)
sET @table = 'ABATABT'
SET @field ='NOMABT'
SELECT MAX(LEN(@field),
FROM @table
Моими результатами будут максимальная длина поля в таблице и содержимое поля. Мне нужно знать, какие записи имеют максимальную длину> 12, чтобы я мог очистить их перед импортом в мою новую систему. Поэтому мне нужно отобразить содержимое поля, чтобы знать, что мне нужно очистить.
Я получаю неправильную синхронизацию c возле 'Group By'
exec ('select
'''+@tab_name+''','''+@col_name+''',max(len('+@col_name+')),'''+@col_name+'''
from [xxxx].'+@tab_name+'''Group By'''+@col_name+'''Having
max(len('+@col_name+'))>12''')
set @counter -= 1
end