再问存储过程内的锁解决思路

再问存储过程内的锁
CREATE PROCEDURE [dbo].[ToRecord9] @cSOCode VARCHAR(10)
AS 
select * from table1 (with TABLOCKX)
 
    BEGIN TRY
        SET xact_abort ON
    BEGIN TRAN
         UPDATE table1 SET F1=0----上面那个锁不影响这里的更新操作吗?从目前事实上来看好像毫无影响,但这从理论上好像解释不通啊
    COMMIT TRAN
    END TRY
    BEGIN CATCH
              PRINT CAST(@@TRANCOUNT AS CHAR(10)) + '捕获错误'
              IF (@@TRANCOUNT > 0)
              PRINT ERROR_MESSAGE()
    ROLLBACK TRAN
    END CATCH   

虽然给table1上锁了,但不影响同一事务本身里的操作,是这样吗?
------解决方案--------------------
测试了一下,不会影响,但是就你这个例子而言,前提是要等第一个select完毕之后后面才能操作,因为你这个锁是表级排它锁,同一个存储过程(可以理解为同一个事务)内,其他操作无法访问和操作这部分资源