2012-07-23 9 views
7

Próbuję wydrukować kartę w serwerze SQL przy użyciu:Char (9) nie drukuje kartę w serwerze SQL 2005

select 'tab-->' + char(9) + '<--tab' 

Ale nie wydaje się do pracy i zawsze drukuje

tab--> <--tab 

Czy jest coś, czego mi brakuje?

+0

działa dobrze dla mnie . Zauważ, że znak tabulacji przejdzie do następnego zatrzymania tabulatora w SQL Serverze, co może w praktyce oznaczać tylko jedną lub dwie spacje. Spróbuj skopiować i wkleić tak zwany znak 'tab' w innym kontekście i sprawdzić, czy generuje karty. (lub umieść dwie lub trzy zakładki w ciągu wyjściowym). – mellamokb

+0

Skopiowałem wyjście do notatnika i ten sam wynik. – sdeep

Odpowiedz

10

Jeśli testujesz to wnętrze Management Studio, w Results to Grid (Ctrl + D) ustawienie zmieni swoją kartę do przestrzeni ... spróbuj przełączyć się Results to Text (Ctrl + T) zamiast tego zobaczysz kartę.

Alternatywnie, można zmienić select się do print:

print 'tab-->' + char(9) + '<--tab' 

Wyjścia ...

tab--> <--tab 
+0

Przetestowałem "wybierz"> "+ char (9) +" <"" z wynikami do siatki i nadal otrzymuję kartę. –

+0

@BenThul Na jakiej wersji SSMS? Testowałem w SSMS 2005 i nie dostaję zakładki z wynikami do siatki ... –

+0

Testowałem na SQL 2012. –

0

Rzecz o kartach jest to, że nie są one stałą szerokość. Znak tabulacji mówi "przenieś mnie do następnego tabulatora". Jeśli obecnie masz tabulatory ustawione na ośmiu znakach, a zakładka ma znak szósty, zakładka będzie tylko jedna. Ale powiedzmy, że jesteś sceptyczny (dobrze!). Jest więcej dowodów na to, że zakładka jest faktycznie wyprowadzana. Jeśli zrobisz coś takiego, jak print '>' + char(9) + '<', zauważysz, że nie możesz wybrać tylko jednej spacji w szczelinie, wskazując, że spacje, które widzisz, są atomowe. Ale bardziej przekonujące dla mnie jest wklejenie go do edytora, który pozwala zobaczyć karty. Używam vima, ale używaj tego, co lubisz. We wszystkich przypadkach testowałem, pojawił się znak tabulacji.

0

Każdy Char(9) lub char(160) jest konwertowany na spację. Jeśli wyrównasz znak (9) + znak (9) + znak (9) =>, nadal masz tylko 1 spację.

Więc próbowałem to:

<"something"+char(9)+char(160)+char(9)+char(160)+char(9)+char(160)+char(9)+char(160)"something"> 

powraca something[8 spaces here]something (każdy char9 lub char16 otrzymuje spacją)

Wizualna mam co chciałem ...

Powiązane problemy