QUẢN LÝ TRẠM

Một số phiên bản cũ chưa có bảng kiểm tra trạm đăng nhập

KIỂM TRA TRẠM, USER ĐANG NHẬP

Nhìn vào thời gian nào đăng nhập xa nhất, thì có thể là trạm đó không sử dụng. Báo lại khách hàng kiểm tra user đó còn hoạt động hay không để xử lý tiếp

-- Liệt kê các trạm đăng nhập
select T1.*, T2.ten
from
(
    select max(computername) as tenmaytinh,max(noidung) as noidung,
        max(createdate) as thoigian,
        max([user]) as nguoidung,
        tram 
    From chamcong 
	--WHERE NOIDUNG LIKE N'%thuỷ%' -- where thêm ở nội dung sẽ chuẩn hơn
    Group by tram
)T1 
inner join 
(select [user] as nguoidung,* from [users])T2 
on T1.nguoidung = T2.nguoidung
Order by thoigian desc

RESET ID TRẠM BẢN DEV Cũ

--ÁP DỤNG CHO BẢN DEV CŨ KHÔNG CÓ RESET NHIỀU DATABASE
-- CHÚ Ý CHỈ ÁP DỤNG CHO MÁY CHỈ CÓ RIÊNG BẢN KẾ TOÁN DEV CŨ, 
--Nếu có cả DEV mới và 88 thì không dùng được

--1. Kiểm tra danh sách các database
SELECT name,database_id FROM sys.databases
WHERE database_id>6 -- Lấy ra Vị trí của database bắt đầu dùng DTECH, lại đi các db của hệ thống (master, model,msdb,tempdb,report...)

--2. Dựa theo vị trí để điền lại vào @id_data

DECLARE @vitri int -- Vị trí những mã trống theo thứ tự tăng dần
DECLARE @tendb NVARCHAR(300)
DECLARE @id_tram INT
DECLARE @id_data INT
DECLARE @sql_cmm NVARCHAR(MAX)
Declare @err_state int =0;  -- Trạng thái lỗi trả về

SET @id_tram =1  -- ID trạm cần reset
SET @id_data = 7  -- Vị trí id của database bắt đầu dùng DTECH

--Tạo 1 bảng tạm quét danh sách các database
declare bangdsdata cursor for
select ROW_NUMBER() OVER(ORDER BY name ASC) AS vitri,name from sys.databases where database_id>=@id_data
open bangdsdata 
Fetch next from bangdsdata
	into @vitri,@tendb
While @@FETCH_STATUS=0
BEGIN
	print '--vitri: '+ CONVERT(NVARCHAR,@vitri)
	--print 'Ma: '+@kytu+FORMAT(@maxso+@vitri,'00000')
	--PRINT 'Update: '+'Update ['+@tendb+'].dbo.Tram set trangthai=0,modidate=getdate() where tram='+CONVERT(NVARCHAR,@id_tram)
	SET @sql_cmm='Update ['+@tendb+'].dbo.Tram set trangthai=0,modidate=getdate() where tram='+CONVERT(NVARCHAR,@id_tram)
	BEGIN TRY
		PRINT @sql_cmm
		EXEC(@sql_cmm)
	END TRY
	BEGIN CATCH
		SELECT @err_state = ERROR_STATE()
	END CATCH;
	Fetch next from bangdsdata
	into @vitri,@tendb
END
CLOSE bangdsdata
DEALLOCATE bangdsdata

CẬP NHẬT ĐƯỜNG DẪN BACKUP TẤT CẢ CÁC DATABASE BẢN DỊCH VỤ

--ÁP DỤNG CHO BẢN DEV CŨ KHÔNG CÓ RESET NHIỀU DATABASE
-- CHÚ Ý CHỈ ÁP DỤNG CHO MÁY CHỈ CÓ RIÊNG BẢN KẾ TOÁN DEV CŨ, 

--1. Kiểm tra danh sách các database
SELECT name,database_id FROM sys.databases
WHERE database_id>4 -- Lấy ra Vị trí của database bắt đầu dùng DTECH, lại đi các db của hệ thống (master, model,msdb,tempdb,report...)

--2. Dựa theo vị trí để điền lại vào @id_data

DECLARE @vitri int -- Vị trí những mã trống theo thứ tự tăng dần
DECLARE @tendb NVARCHAR(300)
DECLARE @id_tram INT
DECLARE @id_data INT
DECLARE @sql_cmm NVARCHAR(MAX)
Declare @err_state int =0;  -- Trạng thái lỗi trả về
DECLARE @path NVARCHAR(MAX)
DECLARE @value NVARCHAR(MAX)

SET @path=N'E:\DTECH\DtechService\Backup'  -- Đường dẫn backup SQL
SET @value =N'SelectedPath'

--SET @id_tram =1  -- ID trạm cần reset
SET @id_data = 5  -- Vị trí id của database bắt đầu dùng DTECH

--Tạo 1 bảng tạm quét danh sách các database
declare bangdsdata cursor for
select ROW_NUMBER() OVER(ORDER BY name ASC) AS vitri,name from sys.databases where database_id>=@id_data
open bangdsdata 
Fetch next from bangdsdata
	into @vitri,@tendb
While @@FETCH_STATUS=0
BEGIN
	print '--vitri: '+ CONVERT(NVARCHAR,@vitri)
	--print 'Ma: '+@kytu+FORMAT(@maxso+@vitri,'00000')
	--PRINT 'Update: '+'Update ['+@tendb+'].dbo.Tram set trangthai=0,modidate=getdate() where tram='+CONVERT(NVARCHAR,@id_tram)
	--SET @sql_cmm='Update ['+@tendb+'].dbo.Tram set trangthai=0,modidate=getdate() where tram='+CONVERT(NVARCHAR,@id_tram)
	SET @sql_cmm='Update ['+@tendb+'].dbo.Dregistry set value='''+@path+''' where name='''+@value+''''
	BEGIN TRY
		PRINT @sql_cmm
		EXEC(@sql_cmm)
	END TRY
	BEGIN CATCH
		SELECT @err_state = ERROR_STATE()
	END CATCH;
	Fetch next from bangdsdata
	into @vitri,@tendb
END
CLOSE bangdsdata
DEALLOCATE bangdsdata

Last updated