我在我的存儲過程中有T-SQL語句,它給了我error.But相同的查詢在查詢窗口中運行得非常好。 它給錯誤說T-SQL查詢語法不正確
Incorret語法近'。'
Set @SQL='Select ''<a href="javascript:editTicketByIDAction('' +
CONVERT(VarChar(Max), Ticket) + '')">'' +
CONVERT(VarChar(Max),t1.Ticket) +
''</a>'' t1.Ticket,VendorTicket[Vendor Ticket], Comments
From VendorTickets t1
WHERE NotifyOn <= GetDate() And NotifyOn Is Not Null AND
NOT EXISTS(SELECT * FROM VendorTickets t2
WHERE t1.Ticket = t2.Ticket AND t1.InitiatedOn < t2.InitiatedOn)'
Exec(@SQL)
沒有T-SQL它工作得很好
SELECT t1.Ticket,t1.VendorTicket,t1.Comments
FROM VendorTickets t1 WHERE
NOT EXISTS(SELECT * FROM VendorTickets t2
WHERE t1.Ticket = t2.Ticket AND t1.InitiatedOn < t2.InitiatedOn)
AND NotifyOn <= GetDate() And NotifyOn Is Not Null
爲什麼用戶'EXEC'而不是'sp_executeSql'?無論如何,'@ SQL'在工作中看起來像什麼? Ticket字段中是否有「。」? – Jodrell 2012-08-13 10:44:24
先寫下你的查詢*,但不要帶'SET @SQL ='。這將允許更簡單的調試。然後,一旦它工作,您可以將其返回到動態SQL佈局。 *(儘管我完全不知道爲什麼你會使用動態SQL?)* – MatBailie 2012-08-13 10:45:13
您是否想要別名列?在這種情況下,你應該在最後一個撇號後刪除't1.'。 – 2012-08-13 10:59:53