Wpis z mikrobloga

Czy jest jakieś narzędzie w Microsoft SQL Server Express (np. w Data Management Studio) lub ewentualnie pełnej wersji SQL Server, które monitorowałoby folder na dysku Windows, w którym jak pojawi się plik CSV z jednym rekordem to ten rekord zostanie dodany jako wiersz do tabeli w bazie danych?

Zasada działania:

1. W Folderze X pojawia się plik CSV z jednym wierszem danych
2. SQL Server wykrywa, że ten plik się pojawił, pobiera z niego ten wiersz i wpisuje go jako rekord do tabeli w bazie.
3. Po wykonaniu tej operacji najlepiej jakby ten plik został usunięty albo przeniesiony do jakiegoś archiwalnego folderu.

ChatGPT podpowiada skrypt w Powershellu i harmonogram zadań w Windows ale może jest jakieś prostsze narzędzie?

#sql #sqlserver #programowanie #naukaprogramowania
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Vojak da się obserwować system plików, np przez C# i dodawać do bazy co tam chcesz. Ale to bardziej program niż narzędzie. Zaleta to zachowanie zbliżone do triggera niż za pomocą schedule.
  • Odpowiedz
No niestety w Expressie nie uświadczysz ani Agenta ani SSISa
Zostaje Tobie @Vojak to co mówi GPT.
Jednocześnie jako ciekawostka to można czesać dysk za pomocą:
https://learn.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/xp-cmdshell-transact-sql?view=sql-server-ver16
jeśli robisz to sobie tak dla testów to możesz zostawić sesję SQL z martwą pętlą waitfor i w niej czesać dysk - ale to powtarzam jako ciekawostka bo jak sesja zdechnie to całe ładowanie bierze w łeb.
  • Odpowiedz