Files
JY1.0/sql/物料标准维护_禁用物料物理删除_测试库_20260803.sql

48 lines
1.5 KiB
Transact-SQL

USE [ERPTOOL_JY_20250826Back]
GO
IF OBJECT_ID(N'[dbo].[物料管理_物理删除]', N'P') IS NOT NULL
DROP PROCEDURE [dbo].[物料管理_物理删除]
GO
CREATE PROCEDURE [dbo].[物料管理_物理删除]
@物料流水号 int=null
AS
BEGIN
SET NOCOUNT ON;
IF @物料流水号 IS NULL OR NOT EXISTS (SELECT 1 FROM dbo.库存管理_物料主文件_基本 WHERE 物料流水号 = @物料流水号)
BEGIN
SELECT '0' AS result, N'物料不存在' AS msg;
RETURN;
END
IF EXISTS (SELECT 1 FROM dbo.库存管理_物料主文件_基本 WHERE 物料流水号 = @物料流水号 AND ISNULL(是否禁用, 0) = 0)
BEGIN
SELECT '0' AS result, N'启用物料不能物理删除,请先删除禁用后再操作' AS msg;
RETURN;
END
BEGIN TRY
BEGIN TRAN;
DELETE FROM dbo.库存管理_物料_图片
WHERE 物料流水号 = @物料流水号; -- 修改人:Ld 修改时间:2026-08-03 08:35:00; 物理删除禁用物料时同步清理图片
DELETE FROM dbo.库存管理_物料主文件_基本
WHERE 物料流水号 = @物料流水号
AND ISNULL(是否禁用, 0) = 1; -- 修改人:Ld 修改时间:2026-08-03 08:35:00; 仅允许已禁用物料物理删除
COMMIT TRAN;
SELECT '1' AS result, N'永久删除成功' AS msg; -- 修改人:Ld 修改时间:2026-08-03 08:35:00; 返回前端可识别结果
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRAN;
SELECT '0' AS result, ERROR_MESSAGE() AS msg;
END CATCH
END
GO