我在我的存储过程中有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