Я пытаюсь написать службу Windows, которая будет отправлять автоматические электронные письма. все таблицы, которые требуют отправки электронной почты, имеют общие столбцы «templateid» и «emailstatus». Я хочу перебрать все таблицы и получить таблицы с именем столбца «templateid». Теперь, когда у меня есть список таблиц с именем столбца «templateid», я получаю данные из каждой таблицы, чей статус электронной почты «ложный», и сохраняю их во временной таблице. если 'table1' имеет 4 строки данных, временная таблица должна иметь 4 строки. после перебора следующей таблицы коллекция строк должна быть добавлена в ту же временную таблицу.
IF (SELECT object_id('TempDB..#TEMPTABLE')) IS NOT NULL
BEGIN
DROP TABLE #TEMPTABLE
END
CREATE TABLE #TEMPTABLE(
[ID] INTEGER IDENTITY(1,1) NOT NULL,
[TABLE_NAME] VARCHAR(1000)
)
INSERT INTO #TEMPTABLE(TABLE_NAME)
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 'TEMPLATEID'
SELECT * FROM #TEMPTABLE
DECLARE @ROWCOUNT INT
SET @ROWCOUNT = (SELECT COUNT(ID) FROM #TEMPTABLE)
DECLARE @I INT
SET @I=1
WHILE(@I<=@ROWCOUNT)
BEGIN
DECLARE @TABLENAME VARCHAR(500)
SELECT @TABLENAME=TABLE_NAME FROM #TEMPTABLE WHERE ID=@I
EXEC('SELECT * FROM '+@TABLENAME)
SET @I=@I+1
END
я нашел приведенный выше запрос, который дает мне все таблицы. после этого я не знаю, как действовать дальше, так как я плохо разбираюсь в SQL-сервере.