2016-09-29 59 views
2

我想插入自定義值與表列一起當我執行INSERT INTO ...SELECT FROM ... WHERE條款如何做INSERT INTO時插入自定義值... SELECT FROM

INSERT INTO RoleMappingEmployee_Delete_History (
    RoleMappingEmployeeKey, 
    SrKey, 
    RoleKey, 
    SubmittedDate, 
    SubmittedBy, 
    IsActive, 
    DeletedBy, 
    DeletedDateTime) 
SELECT 
    RoleMappingEmployeeKey, 
    SrKey, 
    RoleKey, 
    SubmittedDate, 
    SubmittedBy, 
    IsActive, 
    DeletedBy, 
    DeletedDateTime 
FROM 
    RoleMappingEmployee 
WHERE 
    RoleMappingEmployeeKey IN (25902,38188,25887) 

我想自定義插入值DeletedBy,DeletedDateTime

+1

只需選擇文字而不是那兩列。 – jarlh

+0

首先定義自定義值 –

+0

爲什麼要定製日誌記錄(DeletedBy,...)? – p2k

回答

4
INSERT INTO RoleMappingEmployee_Delete_History (
    RoleMappingEmployeeKey, 
    SrKey, 
    RoleKey, 
    SubmittedDate, 
    SubmittedBy, 
    IsActive, 
    DeletedBy, 
    DeletedDateTime) 
SELECT 
    RoleMappingEmployeeKey, 
    SrKey, 
    RoleKey, 
    SubmittedDate, 
    SubmittedBy, 
    IsActive, 
    'peter', 
    getdate() 
FROM 
    RoleMappingEmployee 
WHERE 
    RoleMappingEmployeeKey IN (25902,38188,25887) 
0

也可以使用ORIGINAL_LOGIN功能設置DeletedBy,它將返回誰是執行操作的用戶名,並有助於避免這種每次或參數設置值。同樣,您可以在使用CURRENT_TIMESTAMP的DeletedDateTime中使用替代方法,如下所示:

INSERT INTO RoleMappingEmployee_Delete_History (
    RoleMappingEmployeeKey, 
    SrKey, 
    RoleKey, 
    SubmittedDate, 
    SubmittedBy, 
    IsActive, 
    DeletedBy, 
    DeletedDateTime) 
SELECT 
    RoleMappingEmployeeKey, 
    SrKey, 
    RoleKey, 
    SubmittedDate, 
    SubmittedBy, 
    IsActive, 
    ORIGINAL_LOGIN(), 
    CURRENT_TIMESTAMP 
FROM 
    RoleMappingEmployee 
WHERE RoleMappingEmployeeKey IN (25902,38188,25887)