2014-07-19 2 views

답변

2

프로그램을 작성하는 대신 간단한 UPDATE 문을 사용할 수 있습니다. 예가 (답에서 표/필드 이름을 사용하여);

UPDATE Contact SET conMName = CHAR(ABS(CHECKSUM(NEWID()))%26+65) 
+0

Damnit. 나는 그 문제를 생각하려고한다. – CryptoJones

+0

나는 실제로 ABS 기능에 대해 들어 본 적이 없다. 그거 꽤 멋지다. – CryptoJones

0

Identity 열이 1 씩 증가하는 정수로 가정하고 ID 열의 conID, 테이블의 EDI.Contact, 중간 이름을 포함하는 열의 이름을 conMName이라고하면 다음 코드가 작동합니다.

DECLARE 
    @Counter INT = '1' 
    , @GeneratedLetter CHAR(1) 
    , @NumberOfRows INT = (SELECT COUNT(*) FROM EDI.Contact) -- Replace with your table name 
    , @LetterNumber INT 
WHILE (@Counter < @NumberOfRows +1) 
BEGIN 
SET @LetterNumber = (CAST(RAND(CHECKSUM(NEWID())) * 26 as INT) + 1) 
IF @LetterNumber = '1' 
SET @GeneratedLetter = 'A' 
ELSE IF @LetterNumber = '2' 
SET @GeneratedLetter = 'B' 
ELSE IF @LetterNumber = '3' 
SET @GeneratedLetter = 'C' 
ELSE IF @LetterNumber = '4' 
SET @GeneratedLetter = 'D' 
ELSE IF @LetterNumber = '5' 
SET @GeneratedLetter = 'E' 
ELSE IF @LetterNumber = '6' 
SET @GeneratedLetter = 'F' 
ELSE IF @LetterNumber = '7' 
SET @GeneratedLetter = 'G' 
ELSE IF @LetterNumber = '8' 
SET @GeneratedLetter = 'H' 
ELSE IF @LetterNumber = '9' 
SET @GeneratedLetter = 'I' 
ELSE IF @LetterNumber = '10' 
SET @GeneratedLetter = 'J' 
ELSE IF @LetterNumber = '11' 
SET @GeneratedLetter = 'K' 
ELSE IF @LetterNumber = '12' 
SET @GeneratedLetter = 'L' 
ELSE IF @LetterNumber = '13' 
SET @GeneratedLetter = 'M' 
ELSE IF @LetterNumber = '14' 
SET @GeneratedLetter = 'N' 
ELSE IF @LetterNumber = '15' 
SET @GeneratedLetter = 'O' 
ELSE IF @LetterNumber = '16' 
SET @GeneratedLetter = 'P' 
ELSE IF @LetterNumber = '17' 
SET @GeneratedLetter = 'Q' 
ELSE IF @LetterNumber = '18' 
SET @GeneratedLetter = 'R' 
ELSE IF @LetterNumber = '19' 
SET @GeneratedLetter = 'S' 
ELSE IF @LetterNumber = '20' 
SET @GeneratedLetter = 'T' 
ELSE IF @LetterNumber = '21' 
SET @GeneratedLetter = 'U' 
ELSE IF @LetterNumber = '22' 
SET @GeneratedLetter = 'V' 
ELSE IF @LetterNumber = '23' 
SET @GeneratedLetter = 'W' 
ELSE IF @LetterNumber = '24' 
SET @GeneratedLetter = 'X' 
ELSE IF @LetterNumber = '25' 
SET @GeneratedLetter = 'Y' 
ELSE IF @LetterNumber = '26' 
SET @GeneratedLetter = 'Z' 
UPDATE EDI.Contact -- Replace with your table name 
SET conMName = @GeneratedLetter -- Replace with column that holds middle names 
WHERE conId = @Counter -- Replace with identity column name 
SET @Counter = (@Counter + 1) 
END