Member 12754823 Ответов: 1

Обновление хранимой процедуры


Привет ребята,

Я делаю хранимую процедуру select, которая возвращает мне таблицу в Sql Server 2014. Я сделал небольшую программу в vb.net и я работаю со столом. Теперь мне нужно обновить данные в этой таблице.

Моя хранимая процедура select принимает 5 различных таблиц полей. Имя моей хранимой процедуры completeInventory

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

Так что да, реальный вопрос заключается в том, как я обновляю несколько таблиц с помощью хранимой процедуры?
И, возможно ли обновить поле Select хранимой процедуры, которая уже вернула мне таблицу.

Например: я делаю хранимую процедуру, которая возвращает мне поле: имя, телефон, адрес. Если я хочу обновить поле в поле Имя, тел., адрес, как я это делаю?

Я вроде как новичок в Sql, так что не груби со мной!

Если вы, ребята, можете мне помочь, это будет очень ценно!

Ps: извините за мой плохой английский

Что я уже пробовал:

Здесь я пытаюсь обновить таблицу, которая вернула мне мою "процедуру выбора", кажется, это невозможно?

Создать процедуру dbo.updateInventory
-- Добавьте параметры для хранимой процедуры здесь
@code int,
@Описание nvarchar,
@Кол-во инт,
@location nvarchar,
@Departement nvarchar,
@Компания аргумент,
@владельцев аргумент,
@Налоговый бит,
@Поплавок цена ,
@ isDevalued бит,
@ isDeleted бит
АС
НАЧАТЬ

УСТАНОВИТЕ NOCOUNT ON;

-- completeInventory - это имя моей хранимой процедуры Select

обновление completeInventory установить код=@код, описание=@Описание, кол-во=@кол-во, место,=@местоположения,департамент=@Департамент,компанию=@компании, владельцы=@собственников, налог=@налоговое,цена=@Цена, isDevalued=@isDevalued,isDeleted=@isDeleted
КОНЕЦ
ГО

[no name]

"Я не знаю, как это сделать точно", вы не знаете, как сделать что именно? Похоже, у вас уже есть хранимая процедура, так в чем же вопрос?

Patrice T

Ничего в документации по SQL ?

Member 12754823

Реальный вопрос заключается в том, как я обновляю несколько таблиц с помощью хранимой процедуры!

1 Ответов

Рейтинг:
0

jgakenhe

Как обновить несколько таблиц с помощью хранимой процедуры?

Во-первых, вам, вероятно, следует сначала провести небольшое исследование. В Code Project есть много замечательных статей на эту тему. Во-вторых, всякий раз, когда вы пытаетесь обновить несколько таблиц с помощью одной хранимой процедуры, вы должны сделать это в 1 транзакции, и если есть какие-либо проблемы, то вы можете откатить таблицы в их предыдущее состояние. Ниже приведена общая хранимая процедура, которая обновляет несколько таблиц и, если есть проблема, откатывает хранимую процедуру, чтобы ваши данные не были повреждены.

CREATE PROCEDURE YourProc
(
	@TableID INT
)
AS
BEGIN
	BEGIN TRY
		BEGIN TRANSACTION;
			UPDATE Table1
			SET SalesLastYear = SalesLastYear + @SalesAmt
			WHERE Table1ID = @TableID;

			UPDATE Table2
			SET SalesLastYear = SalesLastYear + @SalesAmt
			WHERE Table2ID = @TableID;

			UPDATE Table3
			SET SalesLastYear = SalesLastYear + @SalesAmt
			WHERE Table3ID = @TableID;

		COMMIT TRANSACTION;
	END TRY
	BEGIN CATCH
    		IF @@TRANCOUNT > 0
    			ROLLBACK TRANSACTION;
 
    			DECLARE @ErrorNumber INT = ERROR_NUMBER();
    			DECLARE @ErrorLine INT = ERROR_LINE();
 
    			PRINT 'Error number: ' + CAST(@ErrorNumber AS VARCHAR(10));
    			PRINT 'Line number: ' + CAST(@ErrorLine AS VARCHAR(10));
 
    		THROW;
  	END CATCH
END;