0

ストアドプロシージャにT-SQLステートメントがあり、エラーが発生しますが、同じクエリがクエリウィンドウで非常にうまく実行されます。それはエラーを言う

'。'の近くの不正な構文

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
4

2 に答える 2

6

あなたは行方不明です+

... + '</a>' +  t1.Ticket ...
             ^------------------------here
于 2012-08-13T10:39:44.270 に答える
0

+あなたは2か所で見逃しました。これを試して:

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)
于 2012-08-13T10:59:01.643 に答える