Лучшим способом отладки этого было бы установить строковую переменную = для всего оператора SQL, а затем скопировать и вставить ее в SQL Server Mgmt Studio.Возможно, вы видели код, работающий вместе, и определили вашу проблему.
Кроме того, я не думаю, что вы действительно понимаете использование символа @ здесь.Только ваша первая строка «SELECT DISTINCT» обрабатывается как литерал, остальные строки, которые вы объединяете, - это просто строки, а не строковые литералы.Что, на самом деле, в данном случае даже не имеет значения.
Что вы, вероятно, имели в виду, это
SqlCommand cmd = new SqlCommand((@"SELECT DISTINCT
tblSBT.sname,
tblSBDetails.sid,
tblSBDetails.assignedtrack,
tblSBDetails.maxtrack,
tblSBDetails.currentvals,
tblSBDetails.maxvals,
tblSBDetails.lastupdated
FROM
tblSBT (NOLOCK)
LEFT OUTER JOIN
tblSBDetails (NOLOCK)
ON
tblSBT.sid = tblSBDetails.sid
WHERE
tblSBDetails.lastupdated > DateADD(n, -5, GETDATE())
ORDER BY
tblSBT.sname"), cn);