수 있는 가장 쉬운 방법은 무엇입니까 사용하여 T-SQL/MS-SQL 문자열을 추가합니다.기존 표 셀?

StackOverflow https://stackoverflow.com/questions/17624

  •  09-06-2019
  •  | 
  •  

문제

나는 테이블과 filename'열입니다.나는 최근에 수행에 삽입 이 열지만에 신속하는 것을 잊었 추가 파일의 확장자는 모든 파일 이름을 입력합니다.다행히도 그들은 모든'.jpg'이미지입니다.

할 수 있는 방법을 쉽게 업데이트 filename'열의 이러한 삽입된 필드를(가정하면 내가 선택할 수 있습니다 최근에 따라 행진 id 값)을 포함한'.jpg'확장자?

도움이 되었습니까?

해결책

솔루션:

UPDATE tablename SET [filename] = RTRIM([filename]) + '.jpg' WHERE id > 50

분 필요하기 때문에 그렇지 않으면[filename]열 전체가 될 것입니다 선택한 문자열에 대한 연결을 즉는 경우 그것은 varchar(20)열고 파일 이름은 만 10 긴 문자 다음은 아직도 사람들을 선택합 10 편지를 다음 10 공간이 있습니다.이전에서 오류가 발생으로 당신이 시도하는 맞 20+3 자로 20 자 장다.

다른 팁

MattMitchell 의 대답은 경우 올바른 열 CHAR(20),그러나 진실하지 않는 경우에 그것은 VARCHAR(20)과 공간이 없었다면 명시적으로 입력합니다.

당신이 경우에 그것을 시도 CHAR 없이 현장 분 함을 얻을 것이다 "문자열이나 이진 데이터가 잘립" 오류가 있습니다.

좋은 쉬운 중 하나 내가 생각합니다.

update MyTable
set filename = filename + '.jpg'
where ...

편집:우+1@MattMitchell 의 대답에 대한 분니다.

는 경우 원래의 데이터에서 나온 문 열 또는 변수(되기 전에 삽입된 이 테이블은)다음,원래 있던 데이터 공백을 추가되기 전에 varchar.

DECLARE @Name char(10), @Name2 varchar(10)
SELECT
  @Name = 'Bob',
  @Name2 = 'Bob'

SELECT
  CASE WHEN @Name2 = @Name THEN 1 ELSE 0 END as Equal,
  CASE WHEN @Name2 like @Name THEN 1 ELSE 0 END as Similiar

생활 수업:사용하지 않 char.

내가 원하는 조정하는 데이비드 B 의"생명의 교훈".생각해야한다"결코 char 를 사용한 가변 길이이 문자열 값은"->있는 유효한 사용에 대한 문자 데이터 입력,마찬가지로 많은 몇몇 사람으로 생각한다:)

응답의 신비 후행 공백에서 찾을 수 있습 ANSI_PADDING

자세한 내용: SET ANSI_PADDING(Transact-SQL)

기본값은 ANSI_PADDIN 니다.이에 영향을 미칠 것입니다 열 때에만 그것을 만들하지만 기존의 열이 있습니다.

을 실행하기 전에 업데이트 쿼리를 확인하는 데이터입니다.수행되지 않았습니다.

다음 쿼리를 실행합을 찾 손상 rows:

SELECT *
FROM tablename 
WHERE LEN(RTRIM([filename])) > 46 
-- The column size varchar(50) minus 4 chars 
-- for the needed file extension '.jpg' is 46.

이러한 행 중 하나를 잃은 어떤 문자나 공간이 충분하지 않을 추가하는 파일 확장자.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top