2012-07-11 17 views
16

puedo crear una vista con códigos siguientes¿Crear vista con clave principal?

SELECT 
    CONVERT(NVARCHAR, YEAR(okuma_tarihi)) + 'T1' AS sno, 
    YEAR(okuma_tarihi) AS Yillar, 
    SUM(toplam_kullanim_T1) AS TotalUsageValue, 'T1' AS UsageType 
FROM 
    TblSayacOkumalari 
GROUP BY 
    CONVERT(NVARCHAR, YEAR(okuma_tarihi)) + 'T1', YEAR(okuma_tarihi) 

UNION ALL 

SELECT 
    CONVERT(NVARCHAR, YEAR(okuma_tarihi)) + 'T2' AS sno, 
    YEAR(okuma_tarihi) AS Yillar, 
    SUM(toplam_kullanim_T2) AS TotalUsageValue, 'T2' AS UsageType 
FROM 
    TblSayacOkumalari 
GROUP BY 
    CONVERT(NVARCHAR, YEAR(okuma_tarihi)) + 'T1', YEAR(okuma_tarihi) 

UNION ALL 

SELECT 
    CONVERT(NVARCHAR, YEAR(okuma_tarihi)) + 'T3' AS sno, 
    YEAR(okuma_tarihi) AS Yillar, 
    SUM(toplam_kullanim_T3) AS TotalUsageValue, 'T3' AS UsageType 
FROM 
    TblSayacOkumalari 
GROUP BY 
    CONVERT(NVARCHAR, YEAR(okuma_tarihi)) + 'T1', YEAR(okuma_tarihi) 

quiero definir CONVERT(nvarchar, YEAR(okuma_tarihi)) + 'T1' AS sno como clave principal es eso posible? Si esto es posible, ¿cómo puedo hacer?

Respuesta

26

No puede crear una clave principal en una vista. En SQL Server puede create an index on a view, pero eso es diferente a la creación de una clave principal.

Si nos proporciona más información sobre por qué quiere una clave en su vista, quizás podamos ayudar con eso.

+2

Creo un modelo de vista y cambio sno como una clave de entidad. Cuando actualizo el modelo, también debo cambiarlo como una clave de entidad. esto no es funcionalmente para mí. –

+10

"Si nos proporciona más información sobre por qué quiere una clave en su vista": Entity Framework arroja una advertencia de que una vista no tiene clave principal: 'Error 6002: la tabla/vista 'mydb.dbo.myview' no tener una clave principal definida ... ' – Ivan

+5

@Ivan El siguiente enlace puede ayudar para esa situación: http://stackoverflow.com/a/2715299/1464699 –

1

Es posible que no pueda crear una clave principal (por ejemplo) pero si su vista se basa en una tabla con una clave principal y la clave se incluye en la vista, la clave principal se reflejará en la vista además. Las aplicaciones que requieren una clave principal pueden aceptar la vista como es el caso con Lightswitch.

+0

Intento lo mismo @DLallemant, pero la clave principal de la tabla real no funciona como la tabla de vista de enemigos clave principal. –

Cuestiones relacionadas