powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / вызов процедуры для записи строк из одной таблицы в другую
23 сообщений из 23, страница 1 из 1
вызов процедуры для записи строк из одной таблицы в другую
    #39640225
martinezo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, подскажите пожалуйста по работе хранимой процедуры,
написал процедуру которая выбирает данные из одной таблицы dbo.SV_FILE (этих данных там сотня),
и записывает их в таблицу dbo.test_table

USE [SVR_FILES]
GO
/****** Object: StoredProcedure [dbo].[addtest] Script Date: 04.05.2018 16:46:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[addtest]
AS
BEGIN
declare @sh varchar (10)
declare @fio varchar (50)
declare @rep_format varchar (10)
select @sh=TD_NUMBER, @fio=reporterfio, @rep_format=ReportFormat from dbo.SV_FILE where TD_NUMBER=5127
insert into dbo.test_table
values (CURRENT_TIMESTAMP, @sh, @fio, @rep_format)
 
END


После отработки процедуры - она записывает только одну строку из dbo.SV_FILE в dbo.test_table
при запуске заново процедуры - записывает еще одну строку в dbo.test_table,
подскажите пожалуйста, как сделать чтобы за один запуск процедуры записывались все строки из dbo.SV_FILE в dbo.test_table ,
а не по одной как это делается сейчас?
Спасибо.
...
Рейтинг: 0 / 0
вызов процедуры для записи строк из одной таблицы в другую
    #39640226
Кесарь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
martinezo,

values замените на select, который будет не записывать значения в переменные, а давать выборку.
...
Рейтинг: 0 / 0
вызов процедуры для записи строк из одной таблицы в другую
    #39640228
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изучить синтаксис команды insert into ... select ...
...
Рейтинг: 0 / 0
вызов процедуры для записи строк из одной таблицы в другую
    #39640231
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
martinezo,

почитать внимательнее документацию и понять, что все написанное заменяется одной командой insert... select... без переменных и процедуры.
...
Рейтинг: 0 / 0
вызов процедуры для записи строк из одной таблицы в другую
    #39640249
martinezo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
через insert .... select я знаю как сделать

интересует именно как реализовать через хранимую процедуру
...
Рейтинг: 0 / 0
вызов процедуры для записи строк из одной таблицы в другую
    #39640257
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
martinezoчерез insert .... select я знаю как сделать

интересует именно как реализовать через хранимую процедуруВзять и засунуть insert ... select в процедуру.
...
Рейтинг: 0 / 0
вызов процедуры для записи строк из одной таблицы в другую
    #39640266
martinezo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
написал так:
ALTER PROCEDURE [dbo].[addtest]
AS
BEGIN
declare @sh varchar (10)
declare @fio varchar (50)
declare @rep_format varchar (10)
 
insert into dbo.test_table
 
select REPORT_DATE, TD_NUMBER, reporterfio, ReportFormat from dbo.SVR_FILE where TD_NUMBER=5127
END

после запуска процедуры было написано - команда выполнена успешно, однако в таблицу dbo.test_table ничего не записалось
...
Рейтинг: 0 / 0
вызов процедуры для записи строк из одной таблицы в другую
    #39640269
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
martinezoпосле запуска процедуры было написано - команда выполнена успешно, однако в таблицу dbo.test_table ничего не записалосьА есть хоть одна причина, почему в таблицу dbo.test_table должно было что-то записаться?
...
Рейтинг: 0 / 0
вызов процедуры для записи строк из одной таблицы в другую
    #39640279
martinezo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>>>А есть хоть одна причина, почему в таблицу dbo.test_table должно было что-то записаться?

за этим и написал на форуме, подскажите, что не так, почему не записывается?
...
Рейтинг: 0 / 0
вызов процедуры для записи строк из одной таблицы в другую
    #39640286
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
martinezo>>>А есть хоть одна причина, почему в таблицу dbo.test_table должно было что-то записаться?

за этим и написал на форуме, подскажите, что не так, почему не записывается?Может потому, что записываться нечему? Вы свой
Код: sql
1.
select REPORT_DATE, TD_NUMBER, reporterfio, ReportFormat from dbo.SVR_FILE where TD_NUMBER=5127

хотя бы пробовали выполнять? Если да, то кс каким результатом?
...
Рейтинг: 0 / 0
вызов процедуры для записи строк из одной таблицы в другую
    #39640287
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
martinezo>>>А есть хоть одна причина, почему в таблицу dbo.test_table должно было что-то записаться?

за этим и написал на форуме, подскажите, что не так, почему не записывается?"Я открыл холодильник, а там нет еды. Подскажите мне, что не так и почему ее там нет".
...
Рейтинг: 0 / 0
вызов процедуры для записи строк из одной таблицы в другую
    #39640288
martinezo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizovmartinezo>>>А есть хоть одна причина, почему в таблицу dbo.test_table должно было что-то записаться?

за этим и написал на форуме, подскажите, что не так, почему не записывается?Может потому, что записываться нечему? Вы свой
Код: sql
1.
select REPORT_DATE, TD_NUMBER, reporterfio, ReportFormat from dbo.SVR_FILE where TD_NUMBER=5127

хотя бы пробовали выполнять? Если да, то кс каким результатом?

да выходит 35 строк
...
Рейтинг: 0 / 0
вызов процедуры для записи строк из одной таблицы в другую
    #39640290
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покажите код вызова процедуры. Покажите план выполнения процедуры. Покажите код проверки таблицы dbo.test_table.
...
Рейтинг: 0 / 0
вызов процедуры для записи строк из одной таблицы в другую
    #39640291
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
martinezoнаписал так:
ALTER PROCEDURE [dbo].[addtest]
AS
BEGIN
declare @sh varchar (10)
declare @fio varchar (50)
declare @rep_format varchar (10)
 
insert into dbo.test_table
 
select REPORT_DATE, TD_NUMBER, reporterfio, ReportFormat from dbo.SVR_FILE where TD_NUMBER=5127
END

после запуска процедуры было написано - команда выполнена успешно, однако в таблицу dbo.test_table ничего не записалосьВ INSERTе всегда пишите в скобках список полей, в которые вставляете.
Это практически закон.
...
Рейтинг: 0 / 0
вызов процедуры для записи строк из одной таблицы в другую
    #39640293
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да! И выбросьте из процедуры все переменные. Зачем они?
...
Рейтинг: 0 / 0
вызов процедуры для записи строк из одной таблицы в другую
    #39640304
martinezo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iapmartinezoнаписал так:
ALTER PROCEDURE [dbo].[addtest]
AS
BEGIN
declare @sh varchar (10)
declare @fio varchar (50)
declare @rep_format varchar (10)
 
insert into dbo.test_table
 
select REPORT_DATE, TD_NUMBER, reporterfio, ReportFormat from dbo.SVR_FILE where TD_NUMBER=5127
END

после запуска процедуры было написано - команда выполнена успешно, однако в таблицу dbo.test_table ничего не записалосьВ INSERTе всегда пишите в скобках список полей, в которые вставляете.
Это практически закон.


написал так:
USE [SVR_FILES]
GO
/****** Object: StoredProcedure [dbo].[addtest] Script Date: 04.05.2018 16:46:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[addtest]
AS
BEGIN
 
 
insert into dbo.test_table (dbo.test_table.dt, dbo.test_table.shop, dbo.test_table.shop_name, dbo.test_table.result)
 
select REPORT_DATE, TD_NUMBER, reporterfio, ReportFormat from dbo.SVR_FILE
END

процедура снова ничего не вставила,

хотя просто через запрос

insert into dbo.test_table (dbo.test_table.dt, dbo.test_table.shop, dbo.test_table.shop_name, dbo.test_table.result)
 
select REPORT_DATE, TD_NUMBER, reporterfio, ReportFormat from dbo.SVR_FILE

было вставлено 35 строк, что не нравится процедуре - не знаю
...
Рейтинг: 0 / 0
вызов процедуры для записи строк из одной таблицы в другую
    #39640317
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
martinezo,

Надо так:
Код: sql
1.
2.
3.
INSERT dbo.test_table(dt,shop,shop_name,result)
SELECT REPORT_DATE,TD_NUMBER,reporterfio,ReportFormat
FROM dbo.SVR_FILE;
...
Рейтинг: 0 / 0
вызов процедуры для записи строк из одной таблицы в другую
    #39640322
martinezo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iapmartinezo,

Надо так:
Код: sql
1.
2.
3.
INSERT dbo.test_table(dt,shop,shop_name,result)
SELECT REPORT_DATE,TD_NUMBER,reporterfio,ReportFormat
FROM dbo.SVR_FILE;



написал так:

USE [SVR_FILES]
GO
/****** Object: StoredProcedure [dbo].[addtest] Script Date: 04.05.2018 16:46:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[addtest]
AS
BEGIN
 
INSERT dbo.test_table(dt,shop,shop_name,result)
SELECT REPORT_DATE,TD_NUMBER,reporterfio,ReportFormat
FROM dbo.SVR_FILE;
END



вышло это

Command(s) completed successfully.

но ничего не добавилось
...
Рейтинг: 0 / 0
вызов процедуры для записи строк из одной таблицы в другую
    #39640323
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
martinezoно ничего не добавилосьЯсен пень. Чтобы добавилось, процедуру надо запустить.
...
Рейтинг: 0 / 0
вызов процедуры для записи строк из одной таблицы в другую
    #39640329
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
martinezo,

После ALTER PROCEDURE [dbo].[addtest] ...как будто здесь был текст этой процедуры.... нужно сделать EXEC [dbo].[addtest]. И все будет хорошо.
...
Рейтинг: 0 / 0
вызов процедуры для записи строк из одной таблицы в другую
    #39640331
martinezo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевичmartinezoно ничего не добавилосьЯсен пень. Чтобы добавилось, процедуру надо запустить.

))) Спасибо - получилось
...
Рейтинг: 0 / 0
вызов процедуры для записи строк из одной таблицы в другую
    #39640333
martinezo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iapmartinezo,

Надо так:
Код: sql
1.
2.
3.
INSERT dbo.test_table(dt,shop,shop_name,result)
SELECT REPORT_DATE,TD_NUMBER,reporterfio,ReportFormat
FROM dbo.SVR_FILE;



Подскажите, пожалуйста, обязательно ли надо было ставить "; " после запроса?
и если несколько запросов идут в процедуре по очереди, их тоже надо разделять точкой с запятой?
Спасибо
...
Рейтинг: 0 / 0
вызов процедуры для записи строк из одной таблицы в другую
    #39640337
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
martinezoiapmartinezo,

Надо так:
Код: sql
1.
2.
3.
INSERT dbo.test_table(dt,shop,shop_name,result)
SELECT REPORT_DATE,TD_NUMBER,reporterfio,ReportFormat
FROM dbo.SVR_FILE;




Подскажите, пожалуйста, обязательно ли надо было ставить "; " после запроса?
и если несколько запросов идут в процедуре по очереди, их тоже надо разделять точкой с запятой?
СпасибоПока обязательно только в некоторых случаях.
Но обещают сделать обязательным в следующих версиях.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / вызов процедуры для записи строк из одной таблицы в другую
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]