表中的存储过程变量

时间:2015-04-24 09:23:12

标签: sql

我想将变量'@Xdate'设置为'dbo.Mtabel'中的'updated'字段。

ALTER PROCEDURE [dbo].[SP_Mproc]
(
@snumber nvarchar(50),
@inumber nvarchar(10),
@tdate datetime
)
AS
IF exists (Select snumber, updated FROM dbo.Mtabel Where snumber = @snumber AND inumber = @inumber)
GO
declare  
    @Xdate datetime,
    @sdate datetime

select
    @Xdate = dbo.@updated,
    @Ydate = GETDATE()

3 个答案:

答案 0 :(得分:0)

SELECT @xdate = updated, @ydate=getdate() FROM dbo.Mtabel WHERE snumber = @snumber AND inumber = @inumber

答案 1 :(得分:0)

ALTER PROCEDURE [dbo].[SP_Mproc]
(
    @snumber nvarchar(50),
    @inumber nvarchar(10),
    @tdate datetime
)
AS

declare @Xdate datetime, @Ydate datetime
Select @Xdate = updated, @Ydate = getDate() FROM dbo.Mtabel Where snumber = @snumber AND inumber = @inumber
IF @@ROWCOUNT > 0
BEGIN
  -- @Xdate contains 'updated', @Ydate contains current datetime
  ...
END
GO

这是为了防止您对同一数据进行多次调用。

答案 2 :(得分:0)

试试这个

CREATE TABLE #YourTable
    ( id varchar(50),Date1 Date, Date2 Date)
;

INSERT INTO #YourTable
    (id, Date1, Date2)
VALUES
    ('1','2015-01-10','2015-01-20'),
    ('2','2015-01-20','2015-01-11'),
    ('3','2015-01-15','2014-01-15'),
    ('4','2015-02-18','2016-03-09')
;
--   select * from #YourTable


Declare @Xdate date
select @Xdate= Date2 from #YourTable where Date2 > GETDATE()
print @Xdate
相关问题