2009-03-15 4 views
10

Czy istnieje sposób na implementację makr do edycji tekstu w systemie SSMS? Chciałbym, na przykład, jak przekonwertować kod, jak pokazano poniżej, ale za pomocą naciśnięcia klawisza, a nie długiego wyszukiwania regex i zamiany.Makra w SQL Server Management Studio

to:

INSERT INTO [TABLE] 
      ([fieldOne] 
      ,[fieldTwo]) 
    VALUES 
      (<fieldOne, datetime,> 
      ,<fieldTwo, real(24,0)) 

musi stać się w ten sposób:

INSERT INTO [TABLE] 
      ([fieldOne] 
      ,[fieldTwo]) 
    VALUES 
      (@fieldOne 
      ,@fieldTwo) 

wiem SSMS nie natywnie wspierać to, ale wiem też, że jest rozszerzalny, jeśli nieudokumentowane, a tam jest również pokój dla całkowicie zewnętrznej aplikacji, która pobierze skopiowany tekst, przekształci go i wklei z powrotem, bez konieczności otwierania edytora, wklejania, edycji, kopiowania i wklejania z powrotem do SSMS.

Edycja przechowywanych szablonów nie jest opcją, ponieważ te szablony są generowane dynamicznie, a użycie Ctrl + Shift + M również nie jest opcją, ponieważ wciąż muszę wpisywać nazwy każdego parametru, ale bez wygody kopiowania i wklejanie w edytorze zapytań.

Nie ma rozwiązania SSMS! Szukam jakiegoś zewnętrznego voodoo, które może mi w tym pomóc.

Odpowiedz

9

Co ze skryptem AutoHotKey?

W zależności od złożoności szablonów, można albo

  1. użycie AutoHotkey odtwarzać klawiszy potrzebne do wyszukiwania regex i zastąpić lub
  2. skopiować szablon do schowka i manipuluj nim bezpośrednio w AutoHotKey, zanim wkleisz z powrotem.

Jestem pewna, że ​​pierwsza opcja zadziała. Nie próbowałem drugiego.

This question podaje, w jaki sposób można napisać skrypt AutoHotKey, aby odsłuchać akordy klawiatury.

4

Jeśli korzystasz z SSMS 2005 w górę, ma wbudowaną obsługę szablonów. To nie jest dokładnie pełnowymiarowe makro, ale nie mniej jest nadal bardzo przydatne.

Składnia jest dokładnie taka sama jak w pierwszym fragmencie kodu, a po prostu naciśnij Ctrl + Shift + M, aby wyświetlić okno dialogowe z monitem o podanie wartości do bitów zawartych w nawiasach trójkątnych.

Serwer SQL generuje skrypt w tym formacie, jeśli klikniesz prawym przyciskiem myszy na tabelę i zaznaczysz "Tabela skryptów jako", a następnie wybierz opcję wstawiania, aktualizacji lub usuwania.

Można również tworzyć własne szablony niestandardowe lub modyfikować jeden z istniejących wbudowanych (kliknij Widok -> Eksplorator szablonów, aby uzyskać dostęp do innych wbudowanych szablonów).

Na stronie MSDN znajduje się short article, który wyjaśnia, w jaki sposób rozpocząć korzystanie z szablonów.

0

Pierwszy kod to szablon ze starego programu MS Query Analyzer. Skrót do wypełnienia to Ctrl + M (ale nie jestem pewien, może to Ctrl + Shift + M).

Powinny być takie same funkcje w nowszym SSMS.

+0

To mi nie pomoże. Równie dobrze mogę ręcznie edytować skrypt. – ProfK

0

Szukałem czegoś innego, ale znalazłem to pytanie. Jeśli nadal szukasz czegoś, wypróbuj pakiet narzędzi SSMS: http://www.ssmstoolspack.com/ Ma makra i wiele innych zgrabnych rzeczy. I to nic nie kosztuje!

+0

SSMS Tools Pack to świetny dodatek, ale nie sądzę, że ma on makra. – onedaywhen

+0

Tak samo jak ostrzeżenie, nie jest już bezpłatne dla systemu SSMS 2012 i nowszych wersji. – ShawnFumo

0

Zwykle kopiuję kod do innego edytora (Notepad ++, lub edytora Delphi/RAD Studio), robię moje makro, a następnie wklejam z powrotem do SSMS.

1

Dla SSMS 2016 można użyć mojego rozszerzenia Visual Commander. Obsługuje makra do nagrywania/odtwarzania i niestandardowe polecenia C#/VB do manipulacji tekstem edytora.

+0

Dziękuję, przyjrzę się i jestem pewien, że okaże się przydatny w pewnym momencie, ale rzadko potrzebuję makra w Visual Studio, do którego twój produkt wydaje się być celem. Był to * SQL Server * Management Studio, dla którego szukałem makr. – ProfK

+0

@ProfK Tak, Visual Commander został pierwotnie opracowany dla VS, ale ostatnie wydanie dodało obsługę SSMS 2016 https://visualstudioextensions.vlasovstudio.com/2016/08/26/automate-ssms-2016-with-visual-commander/ –

+0

Och, genialny. Instaluję teraz. – ProfK