Chuyển dữ liệu từ chi nhánh sang chi nhánh khác
Chay CSDL
// RUN CSDL Cần chuyển
USE VTTECHDEMO
Chạy Query
DECLARE INT = 1
DECLARE @ INT = 1
DECLARE @TotalBranch INT = ISNULL((SELECT COUNT(ID) FROM VTT_Branch), 0)
SELECT TotalBranch = @TotalBranch
IF(@TotalBranch > 1 AND @FromBranchID<> @ToBranchID)
BEGIN
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE
INTO #DTMAIN
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = 'BranchID'
OR COLUMN_NAME = 'Branch_ID'
--SELECT * FROM #DTMAIN
DECLARE @TableName NVARCHAR(200) = '',
@COLUMN_NAME NVARCHAR(200) = '',
@COLUMN_TYPE NVARCHAR(200) = ''
DECLARE @query NVARCHAR(MAX) = ''
WHILE((SELECT COUNT(TABLE_NAME) FROM #DTMAIN) > 0)
BEGIN
SET @query = ''
SELECT TOP(1) @TableName=TABLE_NAME
,@COLUMN_NAME=COLUMN_NAME
,@COLUMN_TYPE=DATA_TYPE
FROM #DTMAIN
IF(@COLUMN_TYPE = 'int')
BEGIN
SET @query = '
UPDATE '+ @TableName + '
SET '+@COLUMN_NAME+' = CAST( '+ CAST(@ToBranchID AS NVARCHAR) + ' AS INT)
WHERE '+ @COLUMN_NAME + ' = CAST( '+ CAST(@FromBranchID AS NVARCHAR) + ' AS INT)
'
EXECUTE(@query)
SELECT 'UPDATE SUCCESS ' + @TableName
END
DELETE TOP(1) FROM #DTMAIN
END
DROP TABLE #DTMAIN
END
Last updated