我正在嘗試將兩個不同的規則合并為一個應該在兩個資料庫服務器中運行的規則。
我確實合并了檔案。但我被困在這個專欄里。兩個資料庫中有兩個名稱不同但資料相同的列。我希望我的查詢檢查該列是否存在
第一列 - APE.RecProdOwner
第二列 - APE.ReconciliationOwner
我希望我的查詢檢查資料庫中的這兩個列,如果兩者之一存在,那么它應該將資料存盤到新列名中,名為“RecProdOwner”
uj5u.com熱心網友回復:
您可以EXISTS對sys物件使用 an ,然后簡單地使用sys.sp_rename來重命名列:
USE Sandbox;
GO
CREATE TABLE dbo.YourTable ([APE.RecProdOwner] int,
ReconciliationOwner int);
GO
IF EXISTS (SELECT 1
FROM sys.schemas s
JOIN sys.tables t ON s.schema_id = t.schema_id
JOIN sys.columns c ON t.object_id = c.object_id
WHERE s.name = N'dbo'
AND t.name = N'YourTable'
AND c.name = N'APE.RecProdOwner')
EXEC sys.sp_rename N'dbo.YourTable.[APE.RecProdOwner]','RecProdOwner','COLUMN';
IF EXISTS (SELECT 1
FROM sys.schemas s
JOIN sys.tables t ON s.schema_id = t.schema_id
JOIN sys.columns c ON t.object_id = c.object_id
WHERE s.name = N'dbo'
AND t.name = N'YourTable'
AND c.name = N'APE.ReconciliationOwner')
EXEC sys.sp_rename N'dbo.YourTable.[APE.ReconciliationOwner]','ReconciliationOwner','COLUMN';
GO
SELECT *
FROM dbo.YourTable;
GO
DROP TABLE dbo.YourTable;
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/489851.html
標籤:sql服务器
上一篇:按值按唯一記錄匯總
