2016-03-28 28 views
0

Bu benim veritabanı üzerinde çalıştırmayı deneyin benim sorgu içinde 'STUD1' adlı nesne zaten ama tutmak oldu altında Bunları 3 hatalar bulundu.Orada veritabanında

CREATE VIEW STUD1 
AS 
    SELECT 
     *, 
     RN = ROW_NUMBER() OVER (PARTITION BY R.ContractID 
           ORDER BY CONVERT(DATE, LEFT(EVAL_PERIOD , charindex('-', EVAL_PERIOD) - 1), 103) DESC) 
    FROM 
     SCMD3.DBO.CPE R; 
GO 

CREATE VIEW STUD2 
AS 
    SELECT 
     C.ContractID, 
     GRED1 = MAX(CASE WHEN RN = 2 THEN ALL_GRADE END), 
     MARK1 = MAX(CASE WHEN RN = 2 THEN ALL_SCORE END), 
     GRED2 = MAX(CASE WHEN RN = 1 THEN ALL_GRADE END), 
     MARK2 = MAX(CASE WHEN RN = 1 THEN ALL_SCORE END) 
    FROM 
     STUD1 C 
    GROUP BY 
     C.ContractID; 
GO 

SELECT 
    s.ContractTitle, x.GRED1, x.MARK1, x.GRED2, x.MARK2 
FROM 
    STUD2 x 
INNER JOIN 
    SCMD3.DBO.CONTRACTMASTER s ON x.ContractID = s.ID; 

I hatalarından olsun:

Msg 2714, Level 16, State 3, Procedure STUD1, Hat veritabanında 'STUD1' adlı nesne zaten var 2
.

Msg 2714, Düzey 16, Durum 3, Yordam STUD2, Satır 9
Veritabanında zaten 'STUD2' adlı bir nesne var.

Msg 537, Düzey 16, Durum 2, Satır 20
Geçersiz uzunluk parametresi SOL veya SUBSTRING işlevine iletildi.

Birkaç çözümler çalıştı ama yine de çalıştırmak için başarısız oldu. Yardım çok takdir edilecektir.

+0

ilk iki hata görünümleri veritabanında zaten söylüyor. üçüncü parametre geçersiz parametresi, belki EVAL_PRIOD bir varvhar (string) türü değil – FLICKER

+0

Tüm betiği yürütmeye devam ederseniz, her seferinde görünümleri oluşturmaya çalışır. CREATE VIEW ifadelerinin zaten başarılı olması durumunda, bunları tekrar çalıştırmanız, elde ettiğiniz hataları oluşturur. – siride

+0

@FLICKER Ben görünüm adı sürekli değişiyor ama owh..I gerçekten bu unuttuk @siride EVAL_PERIOD için hala var aynı error..and veri türü varchar (250) – Fiq

cevap

0

Benim tahminim zaten bu adla bir nesne olması. Aşağıdaki betiği çalıştırarak hangi nesneyi bulduğunu görebilirsiniz. onu izini yardımcı olursa

USE MyDatabaseName 
GO 

SELECT * 
FROM sys.all_objects 
WHERE NAME = 'STUD1' 

, o nesne oluşturur SQL görüntülemek için

SELECT OBJECT_DEFINITION(1678629023) 

kullanabilirsiniz.