Относительно этого кода:
DECLARE @sql NVARCHAR(MAX);
...
BEGIN TRANSACTION loadTempWorkingTime;
DROP TABLE IF EXISTS ##tempWorkingTime;
SET @query = 'SELECT
u_iv_1,
personnel_number,
date,
department_name,
alran_department_id,
CONVERT(begin_time, CHAR) AS begin_time,
CONVERT(end_time, CHAR) AS end_time,
break,
ordinary_hours,
total_working_time,
paid_nonworking_time,
workday,
Approved_by_user,
Approved_by_admin,
Approved_by_user_1,
working_time_total_balance,
holiday,
holiday_balance,
LOGA_AS_anpassung
FROM pm_altran.altran_pm_working_time_overview
WHERE Date BETWEEN "' + CAST(@firstDayToConsider AS VARCHAR(10)) + '" AND "' + CAST(@lastDayToConsider AS VARCHAR(10)) + '"
AND active=1 AND personnel_number<>""''';
SET @sql = N'select * into ##tempWorkingTime
from OPENQUERY(
[SRV_Timetac],''';
SET @sql = @sql + @query + ')';
EXEC (@sql);
COMMIT TRANSACTION loadTempWorkingTime;
Особенно эта часть:
SET @sql = N'select * into ##tempWorkingTime
from OPENQUERY(
[SRV_Timetac],''';
SET @sql = @sql + @query + ')';
Контекст:
В настоящее время я начинаю изучать SQL в целом, и я пытаюсьвыяснить, какая процедура вызывает, какие и так далее.Я искал заявления EXEC, чтобы получить более близкое представление, но я сталкиваюсь с этим утверждением довольно часто, и мне кажется, что я не могу обернуть это вокруг.
Так что похоже, что @sql
временный стол.
Теперь мы выбираем данные из pm_altran.altran_pm_working_time_overview и вставляем их в @sql
.
Я здесь?
Особенно в этой строке:
SET @sql = N'select * into ##tempWorkingTime
Этот "N'select" действительно беспокоит меня.
Если бы вы, ребята, могли бы немного подробнее объяснить, что здесь происходит, я был бы очень, очень рад :)
Спасибо, друзья!