-- SQL查询所有表最近一分钟的修改情况
SELECT
OBJECT_NAME(object_id) AS TableName,
last_user_update AS LastUpdateTime,
last_user_seek AS LastSeekTime,
last_user_scan AS LastScanTime,
last_user_lookup AS LastLookupTime,
CASE
WHEN last_user_update >= DATEADD(MINUTE, -1, GETDATE()) THEN '有修改'
ELSE '无修改'
END AS RecentModification
FROM sys.dm_db_index_usage_stats
WHERE database_id = DB_ID()
AND OBJECT_NAME(object_id) IS NOT NULL
AND last_user_update >= DATEADD(MINUTE, -1, GETDATE())
ORDER BY last_user_update DESC;

---更新表单锁定状态
CREATE TRIGGER [dbo].[更新产品档案的锁定状态]
ON [dbo].[tabDIYTable10536]
AFTER INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON;

-- 只更新发生变化的记录
UPDATE t 
SET t.F110681 = dbo.SD_bLocked(t.bLocked)
FROM [dbo].[tabDIYTable10536] t
INNER JOIN inserted i ON t.FID = i.FID  -- 假设FID是主键
WHERE t.F110681 <> dbo.SD_bLocked(t.bLocked)  -- 只有值真正变化时才更新
   OR t.F110681 IS NULL;

END

-----创建1为勾0为叉的标题值函数
CREATE FUNCTION [dbo].[SD_bLocked]
(
@bLocked INT
)
RETURNS NVARCHAR(10)
AS
BEGIN
RETURN CASE
WHEN @bLocked = 1 THEN N'√'
ELSE N'×'
END
END

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。