일부 행을 업데이트하려는 테이블이 있습니다. 모든 필드가 null이 아닙니다. 하위 쿼리를 수행하고 있으며 Null이 아닌 결과로 테이블을 업데이트하려고합니다.SQL Server 2005에서 업데이트 무시 수행
아래 내 최종 답변을 참조하십시오 : MySQL에서는 UPDATE IGNORE를 수행하여이 문제를 해결합니다. SQL Server 2005에서이 작업을 수행하려면 어떻게해야합니까? 하위 쿼리는 4 테이블 조인을 사용하여 삽입 할 데이터를 찾습니다. 데이터베이스를 쿼리하는 Java 프로그램에서 결과를 검색 한 다음 Null이 아닌 필드를 업데이트하지 않고 SQL을 사용하는 솔루션이 필요하므로 업데이트가 90,000 개 이상의 레코드를 가질 수있는 테이블에 대해 실행되고 있습니다. 값.
업데이트 : 내 쿼리 : 나는 추가 "symbol.name가 NULL이"중 나는 SQL 오류가 WHERE에 경우
UPDATE #SearchResults SET geneSymbol = (
SELECT TOP 1 symbol.name FROM
GeneSymbol AS symbol JOIN GeneConnector AS geneJoin
ON symbol.id = geneJoin.geneSymbolID
JOIN Result AS sSeq ON geneJoin.sSeqID = sSeq.id
JOIN IndelConnector AS joiner ON joiner.sSeqID = sSeq.id
WHERE joiner.indelID = #SearchResults.id ORDER BY symbol.id ASC)
WHERE isSNV = 0
. 만약 내가 그것을 실행하면 "null이 아닌 열에 null 추가"오류가 발생합니다.
UPDATE #SearchResults SET geneSymbol =
ISNULL ((SELECT TOP 1 symbol.name FROM
GeneSymbol AS symbol JOIN GeneConnector AS geneJoin
ON symbol.id = geneJoin.geneSymbolID
JOIN Result AS sSeq ON geneJoin.sSeqID = sSeq.id
JOIN IndelConnector AS joiner ON joiner.sSeqID = sSeq.id
WHERE joiner.indelID = #SearchResults.id ORDER BY symbol.id ASC), ' ')
WHERE isSNV = 0
그렇게 내가 다른 답변을 이해하려고 노력하는거야 (널 경우에 아무것도 할 더없는 것 동안 :
당신에게 모두 감사합니다 :-(,이를 찾는 결국 , 그리고 그들이 더 빠르다는 것을 보아라) 공백 응답을 공백으로 설정하는 것은 또한 효과가있다.이게 무슨 일인가?참고 :()와 함께 ISNULL (...)을 감싸는 것은 정말 모호하다.) 오류.
TIA,
,그렉
당신은 더 정확한 수 (테이블없이 나는 그것을 디버깅 할 수 없습니다, 일부 구문 문제가있을 수 있습니다)? YOU는 null 행을 필터링 할 수있는 update 문에서 where 절을 사용하며, 업데이트에 사용 된 조인에서 업데이트 된 테이블을 참조 할 수 있습니다. – luckyluke
"YOU는 null 행을 필터링 할 수있는 update 문에서 where 절을 사용합니다."어떻게? 내가 아래에 내 조인을 붙여 넣을거야,하지만 그 안에 NULL을 필터링하는 방법을 볼 수 없습니다, 그리고 TSQL 나를 그것 밖에 NULL을 필터링 할 수 없습니다. –
그 RBAR btw, 당신은 그 – luckyluke