[SQL] 대안은 텍스트 또는 NTEXT 데이터 형식에 교체하려면
SQL대안은 텍스트 또는 NTEXT 데이터 형식에 교체하려면
나는 / 업데이트 datatable.column의 데이터를 교체해야합니다. 표는 컨텐츠라는 이름의 필드가 있습니다. 나는 기능을 대체 사용하고 있습니다. 열 데이터 형식이 NTEXT을하기 때문에, SQL 서버는 나를 바꾸기 기능을 사용할 수 없습니다.
이 데이터베이스는 제 3 자 소프트웨어 테이블이 있기 때문에 나는 데이터 유형을 변경할 수 없습니다. 데이터 유형을 변경하면 응용 프로그램이 실패합니다.
UPDATE [CMS_DB_test].[dbo].[cms_HtmlText]
SET Content = REPLACE(Content,'ABC','DEF')
WHERE Content LIKE '%ABC%'
이 오류를 수신 :
기본 키 필드가 : 이름 : ID - 정수 - 나도 이것에 대해 생각해야합니다 그래서 .... 정체성입니다. 어쩌면 N의 신원 임시로 설정합니다.
바꾸기 기능을 달성하는 방법을 알려 주시기 바랍니다?
약. 3000 개 문은 새로운 솔루션으로 업데이트해야합니다.
해결법
-
==============================
1.데이터는 4000 개 문자 오버 플로우는 SQL Server 2000 또는 2000 8 또는 SQL 서버의 호환성 수준에있어하지 않을 경우 :
데이터는 4000 개 문자 오버 플로우는 SQL Server 2000 또는 2000 8 또는 SQL 서버의 호환성 수준에있어하지 않을 경우 :
UPDATE [CMS_DB_test].[dbo].[cms_HtmlText] SET Content = CAST(REPLACE(CAST(Content as NVarchar(4000)),'ABC','DEF') AS NText) WHERE Content LIKE '%ABC%'
2005 + SQL Server의 경우 :
UPDATE [CMS_DB_test].[dbo].[cms_HtmlText] SET Content = CAST(REPLACE(CAST(Content as NVarchar(MAX)),'ABC','DEF') AS NText) WHERE Content LIKE '%ABC%'
-
==============================
2.SQL 서버 2000를 가정하면, 다음과 같은 StackOverflow의 질문은 당신의 문제를 해결해야한다.
SQL 서버 2000를 가정하면, 다음과 같은 StackOverflow의 질문은 당신의 문제를 해결해야한다.
SQL 서버 2005/2008을 사용하는 경우, 당신은 (여기에서 가져온) 다음과 같은 코드를 사용할 수 있습니다 :
select cast(replace(cast(myntext as nvarchar(max)),'find','replace') as ntext) from myntexttable
from https://stackoverflow.com/questions/4341613/alternatives-to-replace-on-a-text-or-ntext-datatype by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 트리거가 테이블에있을 때 OUTPUT 절을 사용하여 UPDATE를 사용할 수 없습니다 (0) | 2020.05.01 |
---|---|
[SQL] 전혀 다른 테이블에있는 행에 대응 한 하나 개의 테이블에 행을 찾는 방법 (0) | 2020.05.01 |
[SQL] 스파크 DataFrame의 GROUPBY를 사용할 때 어떻게 다른 열을 얻으려면? (0) | 2020.05.01 |
[SQL] 는 "파티 모델"의 장점은 무엇 뒤에 원칙은, 그리고? (0) | 2020.04.30 |
[SQL] 어떻게 MS-SQL 서버의 별칭 열에 의해 그룹을 수행합니까? (0) | 2020.04.30 |