🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.bazy-danych
11 messages
11 total messages Started by Cezary Grądys Fri, 05 Feb 2021 18:28
SQL Server zrzut bazy
#195722
Author: Cezary Grądys
Date: Fri, 05 Feb 2021 18:28
16 lines
1643 bytes
Witam.

Sorry za lamerskie pytanie, ale potrzebuje zrobić zrzut bazy w formie
czytelnej dla człowieka, żeby znaleźć w której konkretnie tabeli sa
zapisywane wartości. Tak, żeby się dało użyć grep (pewnie jakiegoś
odpowiednika z windy) i znaleźć.
Widze możliwość eksportu do pliku, ale tam trzeba podać tabelę, a jakbym
wiedział którą, to już bym tego nie potrzebował robić, od razu bym
zrobił SELECT ;)

Pomożecie? Grozi mi spisywanie z ekranu ok 100 wartości co miesiąc.


-- 
Cezary Grądys
czarekgr@wa.onet.pl
Re: SQL Server zrzut bazy
#195723
Author: Adam
Date: Fri, 05 Feb 2021 21:33
101 lines
3460 bytes
W dniu 2021-02-05 o 19:28, Cezary Grądys pisze:
> Witam.
> 
> Sorry za lamerskie pytanie, ale potrzebuje zrobić zrzut bazy w formie
> czytelnej dla człowieka, żeby znaleźć w której konkretnie tabeli sa
> zapisywane wartości. Tak, żeby się dało użyć grep (pewnie jakiegoś
> odpowiednika z windy) i znaleźć.
> Widze możliwość eksportu do pliku, ale tam trzeba podać tabelę, a jakbym
> wiedział którą, to już bym tego nie potrzebował robić, od razu bym
> zrobił SELECT ;)
> 
> Pomożecie? Grozi mi spisywanie z ekranu ok 100 wartości co miesiąc.
> 
> 


Zrzut bazy?

Może wystarczy Ci skrypt, pokazujący ilość rekordów w tabelach, a 
później będziesz porównywał liczniki bazy starszej z nowszą.


/* 
--------------------------------------------------------------------------------
  Script      : ListTableInBase.sql
  Author     : Dariusz 'DBSoft' Brejnak (c) 2010
  Created   : 2010-09-01

  Skrypt wyświetla listę tabel zawartych w aktualnej bazie danych.
  Za pomocą procedura sp_spaceused
  zwracane są informacje o liczbie wierszy, wielkości plików bazy danych
   w KB  lub obiektów bazodanowych i liczbie pustych stron w
  poszczególnych plikach.

  wynik:
  servername    basename        name          rows    reserved  data 
index_size    unsed
  MSSQLEXPRESS    AdventureWorks    Address          19614        4984 
2224           2472       288
  MSSQLEXPRESS    AdventureWorks    AddressType          6          48 
    8             40         0
  MSSQLEXPRESS    AdventureWorks    AWBuildVersion      1          16 
    8              8         0
  ........
*/

use Twoja_Baza_SQL

CREATE TABLE #tmp
  (
  [name] varchar(50),
  [rows] int,
  [reserved] varchar (20),
  [data] varchar (20),
  [index_size]varchar(20),
  [unsed] varchar(20)
  )
CREATE TABLE #tmprows
  (
  [servername] varchar(50),
  [basename] varchar(50),
  [name] varchar(50),
  [rows] int,
  [reserved] varchar (20),
  [data] varchar (20),
  [index_size]varchar(20),
  [unsed] varchar(20)
  )

INSERT #tmp EXEC sp_MSforeachtable 'exec sp_spaceused ''?'''

INSERT #tmprows SELECT @@SERVERNAME,
  DB_NAME(),
  [name],
  [rows],
  replace(reserved,'KB',''),
  replace(data,'KB',''),
  replace(index_size,'KB',''),
  replace(unsed,'KB','')
  FROM #tmp

SELECT [servername],
  [basename],
  [name],
  [rows],
  [reserved],
  [data],
  [index_size],
  [unsed]
FROM #tmprows
ORDER BY [name]

DROP TABLE #tmp
DROP TABLE #tmprows



-- 
Pozdrawiam.

Adam
Re: SQL Server zrzut bazy
#195724
Author: Cezary Grądys
Date: Sat, 06 Feb 2021 08:12
22 lines
1711 bytes
W dniu 05.02.2021 o 22:33, Adam pisze:

> 
> Zrzut bazy?
> 
> Może wystarczy Ci skrypt, pokazujący ilość rekordów w tabelach, a 
> później będziesz porównywał liczniki bazy starszej z nowszą.
> 
> 
> /* 

Dzięki, w poniedziałek postaram się sprawdzić, ale pewnie nie zadziała,
raczej granta na tworzenie tabel i INSERT nie mam.
Mam wytypowaną jedną tabelę z względnie dużą liczbą wierszyn nawet
wydaje się, że wiem która kolumna, ale na razie machnąłem ręką, bo
wartosci liczbowe są typu varchar ;)
Ale kierunek dobry, można wszelkie małe tabele odrzucić.


-- 
Cezary Grądys
czarekgr@wa.onet.pl
Re: SQL Server zrzut bazy
#195725
Author: Adam
Date: Sat, 06 Feb 2021 14:14
41 lines
2176 bytes
W dniu 2021-02-06 o 09:12, Cezary Grądys pisze:
> W dniu 05.02.2021 o 22:33, Adam pisze:
> 
>>
>> Zrzut bazy?
>>
>> Może wystarczy Ci skrypt, pokazujący ilość rekordów w tabelach, a 
>> później będziesz porównywał liczniki bazy starszej z nowszą.
>>
>>
>> /* 
> 
> Dzięki, w poniedziałek postaram się sprawdzić, ale pewnie nie zadziała,
> raczej granta na tworzenie tabel i INSERT nie mam.

Możesz jeszcze raz, ale po polsku bądź angielsku?
Nie bardzo rozumiem, co masz na myśli.

> Mam wytypowaną jedną tabelę z względnie dużą liczbą wierszyn nawet
> wydaje się, że wiem która kolumna, ale na razie machnąłem ręką, bo
> wartosci liczbowe są typu varchar ;)
> Ale kierunek dobry, można wszelkie małe tabele odrzucić.
> 

Możesz tabelę albo wynik zapytania SELECT wyrzucić do pliku csv bądź xml:

bcp "SELECT ... from ... [where ...] [ORDER BY ...]" queryout 
"c:\pliki\plik.csv|xml"

dla xml dodaj w zapytaniu:
for xml raw, root('JAKIS_STRING')

Oczywiście w pytaniu możes zawrzeć jeszcze inne warunki, np JOIN.
Ewentualnie choćby kursorem jechać, korzystać z dodatkowej tabeli i 
szukać zmian.


-- 
Pozdrawiam.

Adam
Re: SQL Server zrzut bazy
#195726
Author: Cezary Grądys
Date: Sun, 07 Feb 2021 11:39
35 lines
2166 bytes
W dniu 06.02.2021 o 15:14, Adam pisze:

> Możesz jeszcze raz, ale po polsku bądź angielsku?
> Nie bardzo rozumiem, co masz na myśli.
> 

Granta mam chyba tylko na SELECT i prawdopodobnie nic innego.


> 
> Możesz tabelę albo wynik zapytania SELECT wyrzucić do pliku csv bądź xml:
> 
> bcp "SELECT ... from ... [where ...] [ORDER BY ...]" queryout 
> "c:\pliki\plik.csv|xml"
> 


Problemem jest, ze nie wiem, która to tabela, muszę to ustalić, wtedy
nie będę potrzebował tworzyć plików, tylko od razu napiszę zapytanie.
Nie wiem co dać we FROM...

Na razie wytypuję tabele mające powiedzmy powyżej kilku tysięcy wierszy
(na pewno mało ich będzie) i te tabele pobadam.

Konkretnie chcę znaleźć odczyty liczników prądu i ciepła. Nawet nie mam
pewności, czy są one trzymane w bazie, ale raczej tak. Bo jak tego nie
znajdę, to będe musiał spisywać z ekranu, na 2 komputer ;) Typowy sposób
w firmie, w której teraz pracuję ;)
Gdyby to był postgres to pg_dump|grep załatwiły by problem.



-- 
Cezary Grądys
czarekgr@wa.onet.pl
Re: SQL Server zrzut bazy
#195727
Author: Adam
Date: Sun, 07 Feb 2021 14:40
45 lines
2339 bytes
W dniu 2021-02-07 o 12:39, Cezary Grądys pisze:
> W dniu 06.02.2021 o 15:14, Adam pisze:
> 
>> Możesz jeszcze raz, ale po polsku bądź angielsku?
>> Nie bardzo rozumiem, co masz na myśli.
>>
> 
> Granta mam chyba tylko na SELECT i prawdopodobnie nic innego.
> 

Zdefiniuj pojęcie "grant".

> 
>>
>> Możesz tabelę albo wynik zapytania SELECT wyrzucić do pliku csv bądź xml:
>>
>> bcp "SELECT ... from ... [where ...] [ORDER BY ...]" queryout 
>> "c:\pliki\plik.csv|xml"
>>
> 
> 
> Problemem jest, ze nie wiem, która to tabela, muszę to ustalić, wtedy

Na znalezienie tabeli dostałeś rozwiązanie w pierwszym poście.

> nie będę potrzebował tworzyć plików, tylko od razu napiszę zapytanie.
> Nie wiem co dać we FROM...
> 
> Na razie wytypuję tabele mające powiedzmy powyżej kilku tysięcy wierszy
> (na pewno mało ich będzie) i te tabele pobadam.
> 
> Konkretnie chcę znaleźć odczyty liczników prądu i ciepła. Nawet nie mam
> pewności, czy są one trzymane w bazie, ale raczej tak. Bo jak tego nie
> znajdę, to będe musiał spisywać z ekranu, na 2 komputer ;) Typowy sposób
> w firmie, w której teraz pracuję ;)
> Gdyby to był postgres to pg_dump|grep załatwiły by problem.
> 
> 
> 


-- 
Pozdrawiam.

Adam
Re: SQL Server zrzut bazy
#195728
Author: Cezary Grądys
Date: Sun, 07 Feb 2021 16:24
15 lines
1580 bytes
W dniu 07.02.2021 o 15:40, Adam pisze:
> Zdefiniuj pojęcie "grant".


No co tu definiować? Komenda do nadawania uprawnień.

https://www.postgresql.org/docs/13/sql-grant.html

Może niezrecznie użyte, ale każdy chyba wie o co chodzi.



-- 
Cezary Grądys
czarekgr@wa.onet.pl
Re: SQL Server zrzut bazy
#195729
Author: Adam
Date: Sun, 07 Feb 2021 17:26
22 lines
1637 bytes
W dniu 2021-02-07 o 17:24, Cezary Grądys pisze:
> W dniu 07.02.2021 o 15:40, Adam pisze:
>> Zdefiniuj pojęcie "grant".
> 
> 
> No co tu definiować? Komenda do nadawania uprawnień.
> 
> https://www.postgresql.org/docs/13/sql-grant.html
> 
> Może niezrecznie użyte, ale każdy chyba wie o co chodzi.
> 

Sorry, nie znałem.
To może następnym razem zacznij od tego, o jaki SQL Ci chodzi, bo nie 
wszystko jest zgodne z ANSI.
Ja pisałem w kontekście MS-SQL.


-- 
Pozdrawiam.

Adam
Re: SQL Server zrzut bazy
#195730
Author: DarekPn
Date: Mon, 08 Feb 2021 19:12
25 lines
2198 bytes
W dniu 07.02.2021 o 18:26, Adam pisze:
> W dniu 2021-02-07 o 17:24, Cezary Grądys pisze:
>> W dniu 07.02.2021 o 15:40, Adam pisze:
>>> Zdefiniuj pojęcie "grant".
>>
>>
>> No co tu definiować? Komenda do nadawania uprawnień.
>>
>> https://www.postgresql.org/docs/13/sql-grant.html
>>
>> Może niezrecznie użyte, ale każdy chyba wie o co chodzi.
>>
> 
> Sorry, nie znałem.
> To może następnym razem zacznij od tego, o jaki SQL Ci chodzi, bo nie 
> wszystko jest zgodne z ANSI.
> Ja pisałem w kontekście MS-SQL.
> 
> 

Dobre ;)

-- 
Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast.
https://www.avast.com/antivirus
Re: SQL Server zrzut bazy
#195731
Author: Adam
Date: Tue, 09 Feb 2021 11:58
50 lines
2536 bytes
W dniu 2021-02-08 o 20:12, DarekPn pisze:
> W dniu 07.02.2021 o 18:26, Adam pisze:
>> W dniu 2021-02-07 o 17:24, Cezary Grądys pisze:
>>> W dniu 07.02.2021 o 15:40, Adam pisze:
>>>> Zdefiniuj pojęcie "grant".
>>>
>>>
>>> No co tu definiować? Komenda do nadawania uprawnień.
>>>
>>> https://www.postgresql.org/docs/13/sql-grant.html
>>>
>>> Może niezrecznie użyte, ale każdy chyba wie o co chodzi.
>>>
>>
>> Sorry, nie znałem.
>> To może następnym razem zacznij od tego, o jaki SQL Ci chodzi, bo nie 
>> wszystko jest zgodne z ANSI.
>> Ja pisałem w kontekście MS-SQL.
>>
>>
> 
> Dobre ;)
> 

Wiesz, różne ciekawostki wychodzą. Nawet w kontekście różnych wersji 
tego samego silnika, jak chociażby AdHoc w MS-SQL, które można sprawdzić np:

select objtype,
count(*) as number_of_plans,
sum(cast(size_in_bytes as bigint))/1024/1024 as size_in_MBs,
avg(usecounts) as avg_use_count
from sys.dm_exec_cached_plans
group by objtype

Natomiast polecenie
DBCC FREESYSTEMCACHE('SQL Plans')
działa OIDP dopiero od wersji ms-sql 2008.

Też mam ciekawe zapytania ze składnią:

select ... where ... and 1=1 and ...

i bez tego 1=1 nie działa. Nie wiem, dlaczego.
A nie znam innych wersji SQL, więc niechcący  mogę coś źle powiedzieć.


-- 
Pozdrawiam.

Adam
Re: SQL Server zrzut bazy
#195732
Author: DarekPn
Date: Tue, 09 Feb 2021 19:14
55 lines
3233 bytes
W dniu 09.02.2021 o 12:58, Adam pisze:
> W dniu 2021-02-08 o 20:12, DarekPn pisze:
>> W dniu 07.02.2021 o 18:26, Adam pisze:
>>> W dniu 2021-02-07 o 17:24, Cezary Grądys pisze:
>>>> W dniu 07.02.2021 o 15:40, Adam pisze:
>>>>> Zdefiniuj pojęcie "grant".
>>>>
>>>>
>>>> No co tu definiować? Komenda do nadawania uprawnień.
>>>>
>>>> https://www.postgresql.org/docs/13/sql-grant.html
>>>>
>>>> Może niezrecznie użyte, ale każdy chyba wie o co chodzi.
>>>>
>>>
>>> Sorry, nie znałem.
>>> To może następnym razem zacznij od tego, o jaki SQL Ci chodzi, bo nie 
>>> wszystko jest zgodne z ANSI.
>>> Ja pisałem w kontekście MS-SQL.
>>>
>>>
>>
>> Dobre ;)
>>
> 
> Wiesz, różne ciekawostki wychodzą. Nawet w kontekście różnych wersji 
> tego samego silnika, jak chociażby AdHoc w MS-SQL, które można sprawdzić 
> np:
> 
> select objtype,
> count(*) as number_of_plans,
> sum(cast(size_in_bytes as bigint))/1024/1024 as size_in_MBs,
> avg(usecounts) as avg_use_count
> from sys.dm_exec_cached_plans
> group by objtype
> 
> Natomiast polecenie
> DBCC FREESYSTEMCACHE('SQL Plans')
> działa OIDP dopiero od wersji ms-sql 2008.
> 
> Też mam ciekawe zapytania ze składnią:
> 
> select ... where ... and 1=1 and ...
> 
> i bez tego 1=1 nie działa. Nie wiem, dlaczego.
> A nie znam innych wersji SQL, więc niechcący  mogę coś źle powiedzieć.
> 
> 

W sumie moja uwaga dotyczyła polecenia "grant". Nie wiedziałem, że to 
taka egzotyka...

-- 
Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast.
https://www.avast.com/antivirus
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads