Sql-Server

將新使用者資訊添加到目前舊使用者帳戶

  • June 3, 2021

大家好,所以我有一個已經執行了幾個月的數據庫。我有一個請求添加使用者的名字和姓氏以及他們的組織

對於新使用者來說,這很容易做到:

"INSERT INTO " +
   "aspnet_UsersAddition " +
       "(UserId, firstName, LastName, OrganizationID) " +
"VALUES " +
   "(" +
       "'" + genGUID + "'," +
       "'" + Params.firstName + "'," +
       "'" + Params.lastName + "'," +
       "" + Params.Params["Org"] +
   ")";

然而,這就是問題所在,沒有與他們的帳戶關聯的 First/Last 和組織的OLD使用者需要將這些添加到他們。

我嘗試了以下方法:

INSERT INTO 
   aspnet_UsersAddition   
       (UserId, firstName, LastName, OrganizationID) 
VALUES 
   ('','','',1) 
WHERE 
   UserId = (SELECT UserId FROM aspnet_Membership WHERE Email = 'admin@admin.com');

但是當然上述方法不起作用,因為 aspnet_UsersAddition 中的UserId其與 aspnet_Membership UserId 進行比較時並不令人****興奮。我在呼叫此函式的頁面上可以訪問的唯一資訊是他們的電子郵件地址和使用者名

所以我想我的問題是 - 如何使用使用者GUID添加新記錄

$$ that needs to be looked up via email address or user name $$這樣我就可以添加該資訊$$ UserId $$到新表$$ first/last and organization $$? 注意:UserId 是唯一標識符。

我是否必須進行單獨的查詢

使用他們的電子郵件地址選擇舊使用者 GUID。

將新記錄插入新表中,除 GUID 以外的空白。

為此?或者有沒有辦法在一個查詢中做到這一點?

我能想到的唯一查詢是 2 部分:

DECLARE @userGUID VARCHAR(50)
SET @userGUID = (SELECT UserId FROM aspnet_Membership WHERE Email = 'admin@admin.com')

INSERT INTO 
   aspnet_UsersAddition 
       (UserId, firstName, LastName, OrganizationID) 
VALUES 
   (Convert(UNIQUEIDENTIFIER, @userGUID), '', '', 1);

抱歉,我沒有完全理解你的問題,如果你能澄清一點會有所幫助,不管聽起來你正在尋找這樣的查詢:

INSERT INTO aspnet_UsersAddition
    (UserId, firstName, LastName, OrganizationID) 
SELECT 
    UserId, '', '', 1
FROM aspnet_Membership 
WHERE Email = 'admin@admin.com'

對於提供的電子郵件地址,這會將和欄位INSERTUserId空白FirstNameLastName欄位的 1OrganizationID從舊表中放入新表中。

引用自:https://dba.stackexchange.com/questions/292736