日期:2014-05-17  浏览次数:20386 次

自定义函数不能赋值
ALTER FUNCTION IsPackInReplenish
(
   @PromotorPackNo varchar(32),
   @ReplenishID int
)
RETURNS BIT 
AS
BEGIN
--DECLARE @PromotorPackNo varchar(32)
--DECLARE @ReplenishID int
--SELECT @PromotorPackNo='YP201401130000'
--SELECT @ReplenishID = 7

DECLARE @Result bit

-- 查找添补明细表中分包是否存在
DECLARE @ID int

SELECT @ID=ID FROM ReplenishItem WHERE (PromotorPackNo = @PromotorPackNo) AND (ReplenishmentID = @ReplenishID)

IF @ID>0
BEGIN
SET @Result = 1
END
ELSE
BEGIN
SET @Result = 0
END

  RETURN @Result
END


SELECT @ID=ID FROM ReplenishItem WHERE (PromotorPackNo = @PromotorPackNo) AND (ReplenishmentID = @ReplenishID)
这句话中不能给@ID赋值,请问各位大侠,为什么呢?

------解决方案--------------------
SELECT @ID=ID FROM ReplenishItem WHERE (PromotorPackNo = @PromotorPackNo) AND (ReplenishmentID = @ReplenishID)
这句之前你定义了@id这个变量没有?
------解决方案--------------------
函数是对的吧
SELECT ID FROM ReplenishItem WHERE (PromotorPackNo = @PromotorPackNo) AND (ReplenishmentID = @ReplenishID)

这条语句能查询到数据么?