Я предполагаю, что это зависит именно то, что вы имеете в виду, по списку полей, приведенный ниже код будет делать по одному. Однако, если вы хотите предоставить список из 20 столбцов и проверить каждый и вывести их в один список, это потребует некоторой рекурсии или нескольких копий/вложений.
select ID, DATA,Field_Name
from table
where DATA like '[ ]%'
or DATA like '%[ ]'
Ниже вы увидите все, что искали, за исключением ID. Я не был уверен, было ли это имя столбца или строка или идентификатор Auto_ID или что. Если его различие в каждой таблице немного сложнее, но если оно то же самое, вы должны иметь возможность изменить ниже.
Declare @Tables Varchar(8000)
,@Columns Varchar(8000)
,@Dynamic_SQL NVARCHAR(MAX)
IF OBJECT_ID('tempdb..#TempTables') IS NOT NULL
DROP TABLE #TempTables
Create Table #TempTables
(TableNames Varchar(8000))
Insert Into #TempTables
Values ('Finance_LTD_Summary_Data')
,('Golf_TX_TMP')
IF OBJECT_ID('tempdb..#Results') IS NOT NULL
DROP TABLE #Results
Create Table #Results
(TableNames Varchar(8000)
,ID Varchar(8000)
,Data Varchar(8000)
,FieldName Varchar(8000))
IF OBJECT_ID('tempdb..#Fields') IS NOT NULL
DROP TABLE #Fields
Create Table #Fields
(COLUMN_Name Varchar(8000))
DECLARE KeyTables_cursor CURSOR FOR
SELECT TableNames
from #TempTables
OPEN KeyTables_cursor
FETCH NEXT FROM KeyTables_cursor
INTO @Tables
WHILE @@fetch_status = 0
BEGIN
Set @Dynamic_SQL = 'truncate table #Fields
Insert into #Fields(COlumn_Name)
select COLUMN_NAME
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME =''' + @Tables + ''''
print convert(text,@Dynamic_Sql)
exec sp_executesql @Dynamic_Sql
DECLARE KeyColumns_cursor CURSOR FOR
SELECT COLUMN_Name
from #Fields
OPEN KeyColumns_cursor
FETCH NEXT FROM KeyColumns_cursor
INTO @Columns
WHILE @@fetch_status = 0
BEGIN
Set @Dynamic_SQL = 'Insert into #results(TableNames,Data,FieldName)
Select ''' + @Tables + ''' , ' + @Columns + ' , ''' + @Columns + '''
From ' + @Tables + '
Where ' + @Columns + ' like ''[ ]%''
or ' + @Columns + ' like ''%[ ]'''
print convert(text,@Dynamic_Sql)
exec sp_executesql @Dynamic_Sql
FETCH NEXT FROM KeyColumns_cursor into @Columns
END
CLOSE KeyColumns_cursor;
DEALLOCATE KeyColumns_cursor;
FETCH NEXT FROM KeyTables_cursor into @Tables
END
CLOSE KeyTables_cursor;
DEALLOCATE KeyTables_cursor;
Вы пробовали данные типа «%» или данные типа «%»? –
У меня есть, но я хочу сделать это для нескольких полей одновременно – user3513237
Этот вопрос отличается от того, что вы задаете в комментарии. Я бы предположил, что вы задаете * другой вопрос с образцами данных и желаемыми результатами, которые лучше всего представляют собой то, что вы действительно ищете. Если вы измените этот вопрос, вы, скорее всего, аннулируете уже предоставленные ответы, и это может привести к занижению. Попробуйте задать другой вопрос. –