So this is more like it, after the slight disappointment of the by-election in Dundee last week. Haddington and Lammermuir isn't particularly SNP territory - the party finished third in the ward (albeit a strong third) last time around, at a time when there was a clear SNP lead nationally. In yesterday's by-election, they moved into a clear second place as the Labour vote collapsed.
Haddington and Lammermuir by-election result (9th May 2019):
Conservatives 35.0% (+6.0)
SNP 29.5% (+3.5)
Labour 21.5% (-12.2)
Liberal Democrats 12.2% (+4.9)
UKIP 1.7% (n/a)
That's the result on first preferences, but the SNP were even closer to victory than those figures suggest. Of the hundreds of Labour voters who transferred on the decisive count, 56.2% went to the SNP and only 43.8% to the Tories - once again giving the lie to the notion that the Labour support can be regarded as part of some sort of monolithic unionist bloc. If the Tory vote drops significantly in some of the crucial north-east marginals at the next general election, Ruth Davidson shouldn't expect unionist tactical votes to save her. Labour supporters in those seats may even be rather more tempted to cast a tactical anti-Brexit vote for the SNP.
That said, Haddington and Lammermuir is obviously a solid result for the Tories as well, and defies recent opinion polls by showing no sign of any loss of support to pro-Brexit parties. (There was no Brexit Party candidate, but UKIP were there.) I suspect it's a case of horses for courses, though, and that voters will behave very differently at the Euro elections.