T-Dynamischen Sql-Query-String Begrenzen

Bin ich immer eine seltsame Ausnahme sagen"
"

Msg 203, Level 16, State 2, Line 53
The name 'SELECT 
        ISNULL(ESP.ID,-1) AS 'PayScaleID',
        ISNULL(E.Prefix,'') + ISNULL(E.SerialNo,0)   AS 'Token number',
        ISNULL(E.FirstName,'')+' '+ ISNULL(E.MiddleName,'')+' '+ISNULL(E.LastName,'') AS 'Employee name',   
        ISNULL(E.CostCentreCode,'') AS 'Cost centre code',
        ESP.TotalPresentDays AS 'Present days',
        ESP.TotalWeeklyOffDays AS 'Week offs',
        ESP.TotalPaidHolidays AS 'Paid holiDays',
        ESP.TotalAbsentDays AS 'Absent days',
        ESP.ArrearDays AS 'Arrear days',
        ESP.OTHours AS 'OTHours',
        ESP.TotalPaidAmount AS 'Total Amount',
        MAD.Name AS 'Allowance' ,
        X.Amount 
    INTO #temp
    FROM 
    (
        SELECT 
            -1 AS 'BillingI' is not a valid identifier."

Ich bin ausführen der folgenden Abfrage.
"

{

DECLARE @sql AS VARCHAR(8000)

SET @sql = 'SELECT 
        ISNULL(ESP.ID,-1) AS ''PayScaleID'',
        ISNULL(E.Prefix,'''') + ISNULL(E.SerialNo,0)   AS ''Token number'',
        ISNULL(E.FirstName,'''')+'' ''+ ISNULL(E.MiddleName,'''')+'' ''+ISNULL(E.LastName,'''') AS ''Employee name'',   
        ISNULL(E.CostCentreCode,'''') AS ''Cost centre code'',
        ESP.TotalPresentDays AS ''Present days'',
        ESP.TotalWeeklyOffDays AS ''Week offs'',
        ESP.TotalPaidHolidays AS ''Paid holiDays'',
        ESP.TotalAbsentDays AS ''Absent days'',
        ESP.ArrearDays AS ''Arrear days'',
        ESP.OTHours AS ''OTHours'',
        ESP.TotalPaidAmount AS ''Total Amount'',
        MAD.Name AS ''Allowance'' ,
        X.Amount 
    INTO #temp
    FROM 
    (
        SELECT 
            -1 AS ''BillingID'',
            ESP.ID AS ''EmployeeSalaryPaidID'',
            MAd.ID AS ''AllowanceID'',
            ESPD.PaidAmount AS ''Amount''
        FROM Employee_SalaryPaid ESP
        INNER JOIN Employee_SalaryPaidDetails ESPD ON ESPD.EmployeeSalaryPaidID = ESP.ID 
        INNER JOIN Employee E ON E.ID = ESP.EmployeeID 
        INNER JOIN Master_AllowanceDeduction MAD ON MAD.ID = ESPD.AllowanceDeductionID 
        WHERE ESP.YearAndMonth =201104
        UNION ALL
        SELECT
            CBR.ID AS ''BillingID'',
            CBRD.EmployeeSalaryPaidID,
            CBRD.AllowanceDeductionID AS ''AllowanceID'',
            CBRD.Amount AS ''Amount''

        FROM Company_BillRaised CBR
        INNER JOIN Company_BillRaisedDetails CBRD ON CBRD.BillRaisedID = CBR.ID
        WHERE CBR.MonthYear =201104
    )X 
    INNER JOIN Master_AllowanceDeduction MAD ON MAD.ID = X.AllowanceID
    INNER JOIN Employee_SalaryPaid ESP ON ESP.ID =X.EmployeeSalaryPaidID
    INNER JOIN Employee E ON E.ID= ESP.EmployeeID
    INNER JOIN dbo.vw_CompanyEmployeeIDs CE ON CE.EmployeeID = E.ID 
    WHERE CE.BranchID =73
DROP TABLE #temp'

 EXEC @sql 

}

Kann ich nicht verstehen, was genau das problem ist? Wir haben einige Grenzen der Zeichen, die während der Ausführung der Dynamischen Sql wie ich es Tue. Ich versuchte drucken, was ich bin immer in @Sql, kann ich die Ergebnisse bekommen, was ich Suche. Aber wenn ich wie diese mit EXEC @Sql es gibt mir die Fehlermeldung.

Irgendwelche Vorschläge?

  • Haben Sie als wählen Sie eine Antwort ? 5 Fragen, 0 Kredit. Die Leute arbeiten hier kostenlos nur die Punkte als Zahlungsmittel. Die am wenigsten Sie tun können, ist geben Kredit, in dem Kredit passend ist
InformationsquelleAutor Raj Jayaswal | 2011-07-23
Schreibe einen Kommentar