목표는 사용자의 암호 양을 가져와 회사의 규칙과 비교하는 것입니다. 그들이 허용하는 숫자를 초과하면 새로운 날짜를 삽입하고 마지막 날짜를 삭제합니다 (또는 마지막 하나를 삭제 한 다음 새 것을 삽입합니다.) 나는 정직하게도 아직 어느 방향으로 가고 싶은지 알았습니다.다른 저장 프로 시저를 호출하는 저장 프로 시저가 부분 이름별로 열을 필터링 한 다음 두 번째 SP의 반환 수를 열 양과 비교합니다.
나는 두 개의 저장 프로 시저가 : 그 양을 필요로하기 때문에 Delete_Oldest_Password_And_Date
및 Number_Of_Passwords
Delete_Oldest_Password_And_Date
전화 Number_Of_Passwords
합니다.
저는 저장 프로 시저의 시작이 좋습니다. 하반기, @Temp_Password_Table
으로 시작합니다.
CREATE Procedure Delete_Oldest_Password_And_Date
@ua_pk uniqueidentifier
AS
DECLARE @Temp_Table table
(
numberOfPasswords INT
)
INSERT INTO @Temp_Table
EXEC Number_Of_Passwords @ua_pk
SELECT *
FROM
@Temp_Table
DECLARE @Temp_Password_Table table
(
password varchar(max)
)
SELECT *
FROM User_Passwords
WHERE User_Passwords.ua_fk = @ua_pk
AND up_Password LIKE '%Password%'
GO
GRANT EXEC ON Delete_Oldest_Password_And_Date TO WEB
GO
아직 삭제가 걱정되지 않습니다. 나는 정확한 정보를 먼저 얻는 것에 대해 더 걱정한다.
User_Passwords는 사람마다 동적입니다. 계획 (아직이 부분에 익숙하지 않은)은 최신 항목을 "up_Password1"열에 넣은 다음 두 번째 열을 "up_Password2"열에 넣는 것입니다.
죄송합니다. 정정! –
Number_of_Passwords에서 반환되는 값은 하나입니까? INT 값이 INT 변수가 아닌 테이블 변수가 될 때마다 하나의 INT 값이 될 것입니다. 그렇다면 IF/ELSE 블록을 더 깨끗하게 사용할 수 있습니다. – scsimon
안녕하세요! 예, 하나의 값, 한 필드 (셀)의 INT –