Ежедневный Insert в SQL Server с данными о другой таблице другого сервера

Я должен делать 'job' SQL Server, запрограммированный для каждого дня в 10 часов утра. Работа основалась бы в переворачивании данных о таблице базы данных сервера в других 2 подмостках (с операциями из-за способа) в другой базе данных другого сервера.

Я не осознаю, как пробегать все реестры, понимаю, что циклы for и foreach они не существуют в SQL. Доступ к другим серверам я верю в то, что считаю это контролируемым. Они связаны и он позволяет мне соглашаться на Ваши данные, хотя не вводить (я представляю, что это было из-за того, что отнесся друг к другу о другом сервере, будет в одинокий способ чтение, я это не знаю). Идея была бы нечто похожим:

--TABLA_FINAL1
INSERT INTO [BDFINAL].[dbo].[TABLA_FINAL1]
SELECT
    campo1_tablaDN16,
    campo1_tablaDN16,
    'Parametro fijo',
    @ParametroCalculado,
    campo1_tablaDN16,
    ...(otros)
FROM [192.168.1.15].[BD_BASE].[dbo].[TABLA_BASE];


--TABLA_FINAL2
INSERT INTO [BDFINAL].[dbo].[TABLA_FINAL2]
SELECT
    campo1_tablaDN16,
    campo1_tablaDN16,
    'Parametro fijo',
    @ParametroCalculado,
    campo1_tablaDN16,
    ...(otros)
FROM [192.168.1.15].[BD_BASE].[dbo].[TABLA_BASE];

Я не знаю, был ли синтаксис правилен, конечно меня помечает ошибка в полях и это служило бы, если бы это был единственный реестр, идея состояла бы в том, чтобы переворачивать все те (кто выполняли бы некое условие). Какая-то идея?

2
задан 11.05.2016, 15:48
3 ответа

DespuГ©s из многого искать следует, что, если они могут делаться loops в sql server:

DECLARE @cnt INT = 0;

WHILE @cnt < cnt_total
BEGIN
   {...statements...}
   SET @cnt = @cnt + 1;
END;
introducir el código aquí
1
ответ дан 24.11.2019, 14:27

Завись, откуда ты выполнил JOB, ты должен делать вещь или другую, хотя он только меняет первую линию

INSERT [TABLA_FINAL1]
SELECT
campo1_tablaDN16,
campo1_tablaDN16,
'Parametro fijo',
@ParametroCalculado,
campo1_tablaDN16,
...(otros)
FROM [192.168.1.15].[BD_BASE].[dbo].[TABLA_BASE];

, В случае когда job выполняет в таблице источник serГ - в

INSERT [IP SERVIDOR FINAL].[BD_BASE].[dbo].[TABLA_FINAL1]
SELECT
campo1_tablaDN16,
campo1_tablaDN16,
'Parametro fijo',
@ParametroCalculado,
campo1_tablaDN16,
...(otros)
FROM [TABLA_BASE];

, и если ты хочешь просочиться из-за дат, меня ты recomendarГ, - когда эта использует conversiГіn

CONVERT(varchar, fecha filtro,111) = CONVERT(varchar, getdate()-1,111)
1
ответ дан 24.11.2019, 14:27

протестируй с этим

INSERT INTO [BDFINAL].[dbo].[TABLA_FINAL2]
SELECT
    campo1_tablaDN16,
    campo1_tablaDN16,
    'Parametro fijo',
    @ParametroCalculado,
    campo1_tablaDN16,
    ...(otros)
FROM [192.168.1.15].[BD_BASE].[dbo].[TABLA_BASE]
where (getdate()-1)
Ojo si tu tabla tiene el dia puedes hacerlo asi
INSERT INTO [BDFINAL].[dbo].[TABLA_FINAL2]
SELECT
    campo1_tablaDN16,
    campo1_tablaDN16,
    'Parametro fijo',
    @ParametroCalculado,
    campo1_tablaDN16,
    ...(otros)
FROM [192.168.1.15].[BD_BASE].[dbo].[TABLA_BASE]
where columna_fecha_ayer = (getdate()-1)
0
ответ дан 24.11.2019, 14:27

Теги

Похожие вопросы