我的数据库中有一些表格。
我正在尝试使用SQL存储过程更新rota表。我希望用户能够输入,例如;
姓名:Adam Brookes
转变:中午
On Call:Secondary
并使用子查询让它查找其中的id并将它们放入rota表中。目前我在Postman进行测试,在那里我可以定义日期'和' datekey'手动
我的存储过程目前看起来像这样;
ALTER PROCEDURE [dbo].[RotaUpdateItems]
@date_key int,
@date date,
@user_id varchar(max),
@shift_type_id int,
@type_call_id int
AS
BEGIN
SET NOCOUNT ON;
UPDATE rota
SET date = @date,
user_id = (
SELECT user_id
FROM staff s
WHERE s.first_name LIKE 'ABC%'
),
shift_type_id = (
SELECT shift_type_id
FROM shifts h
WHERE h.shift_type LIKE 'ABC%'
),
type_call_id = (
SELECT type_call_id
FROM on_call c
WHERE c.type_of_call LIKE 'ABC%')
WHERE date_key = @date_key
END
我引用了this question来获得LIKE' ABC%'代码,看看是否有助于转换"小学"进入' 1',但这并没有完全回答我的问题
我还研究了this answer from John,看看在运行更新查询时是否需要加入,但这并没有完全回答我的问题。