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