У меня есть эта хранимая процедура:Как использовать (возможно) временную таблицу вместо всех этих операторов SELECT внутри моего оператора INSERT?
CREATE PROCEDURE [dbo].[InsertStuff]
@RequestId int
AS
BEGIN
SET NOCOUNT ON
INSERT INTO [dbo].[MyTable] ([Id], [Column2], [AnotherColumn])
VALUES
((SELECT Id FROM [dbo].[MyTable] WHERE Id = @RequestId)
,(SELECT Column2 FROM [dbo].[MyTable] WHERE Id = @RequestId)
,(SELECT AgreementTypeId FROM [dbo].[MyTable] WHERE Id = @RequestId))
END
Как я могу изменить его так, что я не делаю все эти заявления выберите ... что ужасно для исполнения пусть вдоль всего ужасный дизайн. Я предполагаю, что могу использовать временную таблицу, но я хотел бы, чтобы она разъяснила мне, где и как я буду делать это в хранимой процедуре. Благодарю.
является то значения ключевых слов требуется? – JzInqXc9Dg
@Bubbas Values ключевое слово необходимо, когда вы вставляете строку из значений, указанных в инструкции, с любыми значениями непосредственно в выражении sql или переменными, но использование этого предложения является альтернативой этому. Вы можете найти различные варианты из документации: https://msdn.microsoft.com/en-us/library/ms174335.aspx#OtherTables –
Итак, если мне нужно было вставить одно значение из параметра, а также сохранить значения из предыдущего записи я могу сделать это с помощью SELECT. SELECT Id, Column2, @AgreementTypeId – JzInqXc9Dg