SQL Server 데이터베이스에서 C# 응용 프로그램에서 사용하려고하는 뷰가 있는데 뷰에없는 키 필드가 모델에 필요합니다. 이것을 지나치게하려면 뷰를 생성 할 때 GUID를 만들려고했으나 각 행이 다르기 때문에 create 뷰에서 SELECT DISTINCT 절을 무시합니다.SQL Server GUID가있는보기 만들기 및 고유 한 절 선택
결과 중 하나만 GUID를 줄 수 있도록 SELECT 쿼리 다음에 GUID를 만들면 어떻게 될까요?
감사
UPDATE
모든 도움에 대한 감사 의견은 지금까지 내가 해결 방법을 관리하지만하지 예쁘고 더 나은 SQL과 점점 중이 야하기 때문에 나는 확신했습니다 나는 하나의보기
CREATE VIEW [dbo].[vw_OpenTradesMarket]
AS
SELECT DISTINCT TOP (1000)
cast(C.[Link Ref#] AS varchar(max)) as [LinkRef]
,cast(C.[OpenMktBASE] AS varchar(max)) as [Value]
FROM Client AS C
inner JOIN stgMKTBOTH AS M ON C.[Link Ref#] = M.[Link Ref#]
이 더 나은 솔루션이 그 다음 나는 row_numberer으로이 테이블의 뷰를 만들 수있다() 번호가 테이블을 만들 수
CREATE VIEW vw_OpenTradesTest2
AS
SELECT
*
, Row_number() over (Order by LinkRef) as [Id]
From dbo.vw_OpenTradesMarket
내가 말했듯이, 작동하지만 꽤 좋지는 않습니다.이 문제를 개선 할 수 있습니까?
다시 한번 감사드립니다!
아마도 guid 대신 row_number를 사용할 수 있습니까? 그렇게 적은 양의 데이터를 반환합니다. 이를 뷰에 넣고 RowNum = 1을 선택할 수 있습니다. –
동일한 행에 대해 매번 동일한 키를 생성해야합니까? – Kritner
그래서 내가 SELECT DISTINCT Firstname을 가지고 있다면, 성씨 FROM Table은 NEWID(), Firstname, 성 (FROM Table에서 DISTINCT Firstname으로 선택)으로 변경됩니다. – stephenjgray