나는 SQL Server의 초보자 그리고 난 많은 어려움이 다음과 같은 작업을 해결할 수 있습니다업데이트 열은
User_Info에서User_Info
User_UID UNIQUEIDENTIFIER ROWGUIDCOL NULL DEFAULT(newid())
FirstName VARCHAR(50)
LastName VARCHAR(50)
Email VARCHAR(50)
Session
User_UID CHAR(40)
Session_ID PK INT
내가 다른 User_UID에 해당하는이 : 내가 2 개 테이블이 동일한 사용자, 즉 성, 성 및 이메일이 동일한 사용자.
User_Info 테이블을 정리하려면 중복 된 사용자 (이름, 성 및 전자 메일이 아닌 Null이 아니며 비어 있지 않음)를 삭제하고 세션 테이블의 User_UID 열을 해당 user_uid로 업데이트해야합니다. User_Info 테이블과 동일한 사용자를 가리 킵니다. 2 행 User_info (행 2 열 (6) (또는도 1 및도 5의 순서에 따라))로부터 삭제되어야
CREATE TABLE user_info (
User_UID uniqueidentifier ROWGUIDCOL NULL DEFAULT (newid()),
FirstName varchar(50),
LastName varchar(50),
Email varchar(50)
)
INSERT user_info VALUES(newid(), 'Marc', 'Jalloul', '[email protected]')
INSERT user_info VALUES(newid(), 'Marc', 'Jalloul', '[email protected]')
INSERT user_info VALUES(newid(), 'Estelle', 'Jalloul', '[email protected]')
INSERT user_info VALUES(newid(), 'Estelle', 'Jalloul', '[email protected]')
INSERT user_info VALUES(newid(), 'Tony', 'Jalloul', '[email protected]')
INSERT user_info VALUES(newid(), 'Tony', 'Jalloul', '[email protected]')
INSERT user_info VALUES(newid(), '', 'Mirebeau', '[email protected]')
INSERT user_info VALUES(newid(), '', 'Mirebeau', '[email protected]')
INSERT user_info VALUES(newid(), NULL, 'Mirebeau', '[email protected]')
INSERT user_info VALUES(newid(), NULL, 'Mirebeau', '[email protected]')
CREATE TABLE session (
session_id INT IDENTITY(1, 1),
User_UID char(40)
)
INSERT Session
SELECT User_UID FROM user_info
예상 결과와 2 행의 User_UID과 :
이
내 테이블이다 세션 테이블의 6 번은 각각 행 1과 5의 User_UID로 업데이트되어야합니다.이
는 User_Info에서 중복 사용자 삭제하려면 내 코드입니다 :DELETE UI
FROM (
SELECT *
,row_number() OVER (
PARTITION BY FirstName
,LastName
,Email ORDER BY User_UID
) AS RowNum
FROM user_info
WHERE FirstName IS NOT NULL
AND FirstName <> ''
AND LastName IS NOT NULL
AND LastName <> ''
AND Email IS NOT NULL
AND Email <> ''
) r
INNER JOIN user_Info UI
ON r.User_UID = UI.User_UID
WHERE r.RowNum > 1
을하지만 사람이 도움을 줄 수있는 경우 커서
를 사용하지 않고 세션 테이블의 User_UID 필드를 업데이트하는 아직 방법을 찾지 못했습니다 나와 나에게이 작업의 코드를 제공 할 수
감사
질문 - 중복 사용자를 삭제할 때 왜 '세션'테이블에 레코드를 보관해야합니까? –
그냥 User_Info 테이블을 정리하고 – user3569267