我有一个 ASP.NET Web 应用程序,它填充 SQL Server 2008 数据库表,如下所示:
INSERT INTO tblName1 (col1, col2, col3)
VALUES(1, 2, 3)
我还有一个单独的服务应用程序,它通过首先重命名该表,然后创建一个空表来处理该表的内容(在后台):
SET XACT_ABORT ON
BEGIN TRANSACTION
--Rename table
EXEC sp_rename 'tblName1', 'temp_tblName1'
--Create new table
CREATE TABLE tblName1(
id INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
col1 INT,
col2 INT,
col3 INT
)
COMMIT
SET XACT_ABORT OFF
--Begin working with the 'temp_tblName1' table
我不确定在这种情况下我需要在tblName1
表上使用哪个 SQL 锁?
PS。为您提供这两个代码示例运行的频率:第一个可能每秒运行几次(尽管大多数时候,频率较低),第二个 - 一天两次。