[SQL] 고유 식별자에 VARCHAR에서 SQL 변환이보기에 실패
SQL고유 식별자에 VARCHAR에서 SQL 변환이보기에 실패
나는 다음과 같은 시나리오에 갇혔어요. 나는 고객 데이터가있는 테이블과 나는 우리의 B2B 사이트에서 무슨 일이 일어나고 있는지 모니터링 기록을 넣어 테이블이있는 데이터베이스가 있습니다.
고객 테이블은 다음과 같다 :
모니터링 테이블 :
매개 변수 1에 저장된 고객의 GUID뿐만 아니라 다른 데이터 유형입니다.
이제 문제는 가장 최근 방문한 고객이 그리드의 상단에 와야 마지막 방문 날짜를 따라 우리의 고객을 주문했다.
나는 내 모니터링 테이블 위에 뷰를하기로 결정 그래서 엔티티 프레임 워크와 내가 문자열과 GUID 유형을 비교하는 문제가 있었다 사용하고 있습니다 :
SELECT
ID,
CONVERT(uniqueidentifier, parameter2) AS customerguid,
USERguid,
CreationDate
FROM
MONITORING
WHERE
(dbo.isuniqueidentifier(parameter2) = 1)
AND
(parameter1 LIKE 'Customers_%' OR parameter1 LIKE 'Customer_%')
나는 EF에서보기를 가져오고 내 LINQ 쿼리를했다. 내가 생성 된 SQL 쿼리를 추출 그래서는 아무 것도 반환하지 않습니다. SQL 관리에서 쿼리를 테스트 할 때 스튜디오 나는 다음과 같은 오류가 발생했습니다 : 고유 식별자로 문자열에서 변환 할 때 변환에 실패했습니다.
다음 코드에서 문제 거짓말은 (이 질문에 대한 단순화뿐만 아니라 오류를 제공합니다 :
SELECT *,
(
SELECT
[v_LastViewDateCustomer].[customerguid] AS [customerguid]
FROM [dbo].[v_LastViewDateCustomer] AS [v_LastViewDateCustomer]
WHERE c.GUID = [v_LastViewDateCustomer].[customerguid]
)
FROM CM_CUSTOMER c
내가 가입 할 때, 나는 내 결과를 얻을 수 :
SELECT *
FROM CM_CUSTOMER c
LEFT JOIN
[v_LastViewDateCustomer] v
on c.GUID = v.customerguid
나는 SQL 바이올린을 만들려고하지만, 그 사이트에 노력하고있다. http://sqlfiddle.com/#!3/66d68/3
올바른 방향으로 날 지점 수 누구?
해결법
-
==============================
1.사용하다
사용하다
TRY_CONVERT(UNIQUEIDENTIFIER, parameter2) AS customerguid
대신에
CONVERT(UNIQUEIDENTIFIER, parameter2) AS customerguid
뷰는 쿼리에 인라인 및 CONVERT는 WHERE 전에 실행할 수 있습니다.
몇 가지 추가 설명은 SQL 서버가 비논리적 인 오류를 발생하지 않아야 참조
from https://stackoverflow.com/questions/20474041/sql-conversion-from-varchar-to-uniqueidentifier-fails-in-view by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 where 절에 삽입 (0) | 2020.07.17 |
---|---|
[SQL] 오류로 실패 업데이트 쿼리 : 1175 (0) | 2020.07.17 |
[SQL] 하나 INSERT 명령과 복수의 열을 삽입 (0) | 2020.07.17 |
[SQL] 엔티티 프레임 워크와 타임 스탬프 열을 기준으로 선택의 새로운 기록 (0) | 2020.07.17 |
[SQL] 왜 이런 식으로 널 행동은 SQL 날짜 변수를 비교합니까? (0) | 2020.07.16 |