在存过程中使用了SET LOCK_TIMEOUT ,有什么办法使SET LOCK_TIMEOUT 1800中的1800可配置,类似于SET LOCK_TIMEOUT @p?
CREATE PROCEDURE SP_ORDR_TEST
       @COUNTDATETIME   datetime    --计算时间
AS
BEGIN
Declare @msecond      int;
set @msecond=5000;
SET NOCOUNT ON
set  Lock_TimeOut @msecond
BEGIN TRANSACTION 
                          ……

解决方案 »

  1.   

    @SQL='set  Lock_TimeOut '+LTRIM(@msecond )EXEC(@SQL)
      

  2.   

    alter PROCEDURE SP_ORDR_TEST
    AS
    BEGIN
    Declare @msecond      int;
        Declare @SQL varchar(100);
    set @msecond=5000;
    set @SQL='set  Lock_TimeOut '+LTRIM(@msecond ) ;
    SET NOCOUNT ON
    --Set Lock_TimeOut 5000
    EXEC(@SQL);
    BEGIN TRANSACTION  print @@Lock_TimeOut;

    END;
    --------------------结果为-1
    alter PROCEDURE SP_ORDR_TEST
    AS
    BEGIN
    Declare @msecond      int;
        Declare @SQL varchar(100);
    set @msecond=5000;
    set @SQL='set  Lock_TimeOut '+LTRIM(@msecond ) ;
    SET NOCOUNT ON
    Set Lock_TimeOut 5000
    --EXEC(@SQL);
    BEGIN TRANSACTION  print @@Lock_TimeOut;

    END;
    --------------结果为5000
    -----------------------------------貌似不行哦?????????
      

  3.   


    Declare @msecond      int; 
        Declare @SQL varchar(100); 
    set @msecond=5000; 
    set @SQL='set  Lock_TimeOut '+LTRIM(@msecond ) ; 
    SET NOCOUNT ON 
    --Set Lock_TimeOut 5000 
    EXEC(@SQL); 
    BEGIN TRANSACTION print @@Lock_TimeOut; 
    Declare @msecond      int; 
        Declare @SQL varchar(100); 
    set @msecond=5000; 
    set @SQL='set  Lock_TimeOut '+LTRIM(@msecond ) ; 
    SET NOCOUNT ON 
    Set Lock_TimeOut 5000 
    --EXEC(@SQL); 
    BEGIN TRANSACTION print @@Lock_TimeOut; 晕,我测试都一样啊