でない場合、私はIDを取得し、それが存在するか、現在の日付を返す場合、テーブルから日付を返す関数を持っている:Updateフィールド
CREATE FUNCTION [dbo].[CLOSEDATE] (@ID int)
RETURNS datetime
AS
BEGIN
DECLARE @closed int;
DECLARE @result datetime;
SELECT @result = created_on from dbo.statuses_history
WHERE journalized_id = @ID and new_status = 'Закрыто';
IF @result IS NULL
SELECT @result = GETDATE()
RETURN (DATEADD(dd, 0, DATEDIFF(dd, 0, @result)))
END;
次のクエリは、テーブルから正しい日付を返す:
をselect dbo.closedate(4170)
select dbo.closedate(id) from issues where id = 4170
し、次のコード更新のレコードを正しく(表から値):
DECLARE @d AS datetime
select @d = dbo.closedate(4170)
UPDATE issues SET created_on = @d WHERE issues.id = 4170
しかし、私は、現在の日付を取得フィールドを更新すると、レコードが更新されます。
UPDATE issues
SET created_on = dbo.CloseDate(id)
WHERE issues.id = 4170
IDパラメータが関数に渡されないようです。
はい、私は試してみました。それは問題ではありません – demas