|
Создание доп.колонки во временной таблице для нескольких встроенных процедур
|
|||
---|---|---|---|
#18+
Добрый день, есть хранимая процедура, которая вычисляет поступления денег по магазину за день. Я создаю таблицу CREATE TABLE и выгружаю в нее данные. Поскольку мне нужны данные по нескольким дням, я выгружаю несколько раз. Код следующий drop table if exists #tmp CREATE TABLE #tmp (market_name varchar(255), и так далее)) INSERT INTO #tmp execute mp_get_rep @pstart_date = '2021-06-17 00:00:00.000', @pend_date = '2021-06-17 23:59:00.000' INSERT INTO #tmp execute mp_get_rep @pstart_date = '2021-06-16 00:00:00.000', @pend_date = '2021-06-16 23:59:00.000' INSERT INTO #tmp execute mp_get_rep @pstart_date = '2021-06-15 00:00:00.000', @pend_date = '2021-06-15 23:59:00.000' Проблема в том, что в этой хранимой процедуре нет данных по какому дню идет выгрузка. То есть мне нужно создать столбец, котором будет дублироваться дата. drop table if exists #tmp CREATE TABLE #tmp (market_name varchar(255), и так далее)) INSERT INTO #tmp execute mp_get_rep @pstart_date = '2021-06-17 00:00:00.000', @pend_date = '2021-06-17 23:59:00.000' alter table #tmpBusicasapodnyam add datecurra datetime NOT NULL DEFAULT '2021-06-17 00:00:00.000' INSERT INTO #tmp execute mp_get_rep @pstart_date = '2021-06-16 00:00:00.000', @pend_date = '2021-06-16 23:59:00.000' INSERT INTO #tmp execute mp_get_rep @pstart_date = '2021-06-15 00:00:00.000', @pend_date = '2021-06-15 23:59:00.000' Я сделал это, но криво, так как после добавления столбца уже следующая хранимая процедура ругается, что количество столбцов не соответсвует. Подскажите, как правильно добавить колонку с датой в конце выгрузки хранимой процедуры? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2021, 17:23 |
|
Создание доп.колонки во временной таблице для нескольких встроенных процедур
|
|||
---|---|---|---|
#18+
gerzzog, используйте линк-петлю. тогда обращение сможете завернуть через openrowset вида: Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2021, 17:35 |
|
Создание доп.колонки во временной таблице для нескольких встроенных процедур
|
|||
---|---|---|---|
#18+
gerzzog следующая хранимая процедура ругается, что количество столбцов не соответсвует. нужно указывать столбцы: INSERT INTO #tmp (market_name, ...) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2021, 17:47 |
|
Создание доп.колонки во временной таблице для нескольких встроенных процедур
|
|||
---|---|---|---|
#18+
stdvb, ок, попробую. Просто там 117 столбцов в таблице(((( ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2021, 10:03 |
|
Создание доп.колонки во временной таблице для нескольких встроенных процедур
|
|||
---|---|---|---|
#18+
stdvb gerzzog следующая хранимая процедура ругается, что количество столбцов не соответсвует. нужно указывать столбцы: INSERT INTO #tmp (market_name, ...) Ок, получилось, но как мне прописывать каждый раз новое значение даты? Какой код нужно прописать, чтобы одновременно с внесением данных по хранимой процедуре, вносилась дата в последний столбец? insert into #tmp (перечисляю необходимые столбцы) execute mp_get_rep @pstart_date = '2021-06-17 00:00:00.000', @pend_date = '2021-06-17 23:59:00.000' ???? как тут дату прописать для отдельного столбца? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2021, 10:41 |
|
Создание доп.колонки во временной таблице для нескольких встроенных процедур
|
|||
---|---|---|---|
#18+
felix_ff gerzzog, используйте линк-петлю. тогда обращение сможете завернуть через openrowset вида: Код: sql 1. 2. 3. 4. 5.
спасибо, но не могу разобраться. пишет ошибку на синтаксис возле поля [LOOPBACK]. Пробовал по разному, но я первый раз сталкиваюсь с операторами openrowset и [LOOPBACK]. Не знаю в чем может быть проблема ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2021, 10:47 |
|
Создание доп.колонки во временной таблице для нескольких встроенных процедур
|
|||
---|---|---|---|
#18+
gerzzog stdvb пропущено... нужно указывать столбцы: INSERT INTO #tmp (market_name, ...) Ок, получилось, но как мне прописывать каждый раз новое значение даты? Какой код нужно прописать, чтобы одновременно с внесением данных по хранимой процедуре, вносилась дата в последний столбец? insert into #tmp (перечисляю необходимые столбцы) execute mp_get_rep @pstart_date = '2021-06-17 00:00:00.000', @pend_date = '2021-06-17 23:59:00.000' ???? как тут дату прописать для отдельного столбца? Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2021, 10:48 |
|
Создание доп.колонки во временной таблице для нескольких встроенных процедур
|
|||
---|---|---|---|
#18+
aleks222, мне нужно много раз выполнять хранимую процедуру и я когда ввожу код такого плана: insert into #tmpB execute ... alter table #tmp add insert into #tmpB execute ... alter table #tmp add он мне выдает ошибку: Msg 2705, Level 16, State 4, Line 11 Column names in each table must be unique. Column name 'datecurra' in table '#tmpBusicasapodnyam' is specified more than once. типа несколько раз создал стобец. А мне надо один раз создать столбец datecurra и потом менять значение datecurra каждый раз при запуске хранимой процедуры ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2021, 11:07 |
|
Создание доп.колонки во временной таблице для нескольких встроенных процедур
|
|||
---|---|---|---|
#18+
gerzzog, я перепутал openrowset с openquery. вы хотя бы справку читанули бы по ней, там же видно из документации что для openrowset несколько другой синтаксис. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2021, 11:56 |
|
Создание доп.колонки во временной таблице для нескольких встроенных процедур
|
|||
---|---|---|---|
#18+
felix_ff gerzzog, я перепутал openrowset с openquery. вы хотя бы справку читанули бы по ней, там же видно из документации что для openrowset несколько другой синтаксис. Ок, спасибо, большое. Читал, но я сходу на LOOPBACK запнулся. Вообще не понял как это работает, честно говоря. По запросу там сразу довольно продвинутый уровень обсуждается... Как видите, по моему коду, я начинающий) Попробую разобраться внес изменения и выходит ошибка: Msg 7202, Level 11, State 2, Line 4 Could not find server 'LOOPBACK' in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedur... подскажите, пожалуйста, что это может быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2021, 13:20 |
|
Создание доп.колонки во временной таблице для нескольких встроенных процедур
|
|||
---|---|---|---|
#18+
gerzzog felix_ff gerzzog, я перепутал openrowset с openquery. вы хотя бы справку читанули бы по ней, там же видно из документации что для openrowset несколько другой синтаксис. Ок, спасибо, большое. Читал, но я сходу на LOOPBACK запнулся. Вообще не понял как это работает, честно говоря. По запросу там сразу довольно продвинутый уровень обсуждается... Как видите, по моему коду, я начинающий) Попробую разобраться внес изменения и выходит ошибка: Msg 7202, Level 11, State 2, Line 4 Could not find server 'LOOPBACK' in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedur... подскажите, пожалуйста, что это может быть? Если, вместо loopback воожу название сервера, выдает ошибку Msg 7411, Level 16, State 1, Line 4 Server '.....' is not configured for DATA ACCESS. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2021, 13:48 |
|
Создание доп.колонки во временной таблице для нескольких встроенных процедур
|
|||
---|---|---|---|
#18+
gerzzog aleks222, мне нужно много раз выполнять хранимую процедуру и я когда ввожу код такого плана: insert into #tmpB execute ... alter table #tmp add insert into #tmpB execute ... alter table #tmp add он мне выдает ошибку: Msg 2705, Level 16, State 4, Line 11 Column names in each table must be unique. Column name 'datecurra' in table '#tmpBusicasapodnyam' is specified more than once. типа несколько раз создал стобец. А мне надо один раз создать столбец datecurra и потом менять значение datecurra каждый раз при запуске хранимой процедуры Сначала создать столбец без значения по умолчанию: Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2021, 13:55 |
|
Создание доп.колонки во временной таблице для нескольких встроенных процедур
|
|||
---|---|---|---|
#18+
stdvb gerzzog aleks222, мне нужно много раз выполнять хранимую процедуру и я когда ввожу код такого плана: insert into #tmpB execute ... alter table #tmp add insert into #tmpB execute ... alter table #tmp add он мне выдает ошибку: Msg 2705, Level 16, State 4, Line 11 Column names in each table must be unique. Column name 'datecurra' in table '#tmpBusicasapodnyam' is specified more than once. типа несколько раз создал стобец. А мне надо один раз создать столбец datecurra и потом менять значение datecurra каждый раз при запуске хранимой процедуры Сначала создать столбец без значения по умолчанию: Код: sql 1. 2. 3. 4. 5.
Фуххх...что-то запутался...А где вставлять код execute ? А то ошибку выбивает: Msg 1752, Level 16, State 0, Line 7 Column 'datecurra' in table '#tmpBusicasapodnyam' is invalid for creating a default constraint. Msg 1750, Level 16, State 0, Line 7 Could not create constraint or index. See previous errors. где-то я намудрил ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2021, 14:18 |
|
Создание доп.колонки во временной таблице для нескольких встроенных процедур
|
|||
---|---|---|---|
#18+
gerzzog, вам сначала нужно создать на вашем сервере линкованный сервер на самого себя Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
в зависимости от применения openquery несколько могут меняться параметры настройки линка ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2021, 15:24 |
|
Создание доп.колонки во временной таблице для нескольких встроенных процедур
|
|||
---|---|---|---|
#18+
gerzzog где-то я намудрил Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2021, 15:33 |
|
Создание доп.колонки во временной таблице для нескольких встроенных процедур
|
|||
---|---|---|---|
#18+
felix_ff, блин, наши айтишники не пойдут на такое( нам и так дали со скрипом доступ к серверу с ограниченным доступом) но спасибо, попробую разобраться для общего развития! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2021, 15:42 |
|
|
start [/forum/topic.php?fid=46&fpage=21&tid=1684582]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 278ms |
total: | 416ms |
0 / 0 |