我想知道是否可以在另一个存储过程中使用存储过程中的结果集来了解记录是否不同(如果它已被编辑)以便在数据库上更新它。
我在想这样的事情:
CREATE PROCEDURE [SISACT].[find_ubicacion]
@ubicacion_to VARCHAR(8)
AS
SELECT ubicacion, descripcion FROM UBICACIONES WHERE ubicacion = @ubicacion_to
和那个叫它的人
CREATE PROCEDURE [SISACT].[update_ubicacion]
@ubicacion VARCHAR(8),
@old_descripcion VARCHAR(60),
@new_descripcion VARCHAR(60)
AS
BEGIN
@old_descripcion = EXEC [SISACT].[find_ubicacion] (@ubicacion)
PRINT @old_descripcion
IF @old_descripcion != @new_descripcion
UPDATE [SISACT].[UBICACIONES] SET descripcion=@new_descripcion WHERE
ubicacion=@ubicacion
ELSE
PRINT 'Nothing to update'
END
除了EXEC [SISACT].[find_ubicacion] (@ubicacion)
不起作用。我是 SQL SERVER 和存储过程的新手,如果这真的很基本,我很抱歉。我必须在几天内做一些比这更复杂的事情。这可能吗?另外,如果有许多字段而不仅仅是一个字段,我怎么知道要更新哪个字段,是否有一种“简单”的方法可以做到这一点?
注意:我知道这一点->
@old_descripcion = EXEC [SISACT].[find_ubicacion] (@ubicacion)
PRINT @old_descripcion
IF @old_descripcion != @new_descripcion
错了,我只是想让你了解我想要完成的事情。
我在这里要做的是,在更新之前验证记录是否已被修改。这就是我打算使用“find_ubicacion”的目的,找到旧的,将其与输入参数进行比较,然后更新与否
就像我说的,如果这是一个愚蠢的问题或非常基本的问题,我很抱歉,我正在尝试自己学习。预先感谢您的任何帮助。