Copiere parola utilizator SAP de la alt utilizator

Pentru copierea parolei utilizatorului GEORGE.S din clientul 300 peste acelasi utilizator din clientul 200 se poate utiliza urmatorul sql query:

UPDATE
    T200
SET
    T200.BCODE = T300.BCODE,
    T200.PASSCODE = T300.PASSCODE
FROM
    lid.USR02 AS T200
    INNER JOIN lid.USR02 AS T300 ON (T200.BNAME = T300.BNAME AND T300.MANDT = '300')
WHERE
    T200.MANDT = '200' AND T200.BNAME = 'GEORGE.S';

 

Mutare fisier transaction log pe alt disk

Din considerente care tin de performanta este recomandat ca fisierul Transaction log al unei baze de date MSSQL sa se afle pe alta partitie decat baza de date. Pentru mutarea acestui fisier pe alta partitie se va utiliza instrumentul SQL Server Management Studio (SSMS). In pricipiu aceiasi pasi pot fi urmati pentru mutarea oricarui alt fisier din componenta unei baze de date MSSQL.

  1. Autentificare in SSMS
  2. Click dreapta pe baza de date asupra careia trebuie intervenit > Tasks > Detach
  3. Mutarea fisierului Transaction log la locatia dorita
  4. Click dreapta pe Databases > Attach
  5. Se va cauta locatia fisierului principal al bazei de date
  6. In dreptul fisierului Transaction log (sau al oricarui fisier mutat in alta locatie) va apare eroarea ca fisierul nu a fost gasit. Pentru fiecare eroare se va naviga la locatia corecta si se va alege fisierul.
  7. Ok

Daca, dupa detach, apare eroare ca nu se mai poate conecta la serverul SQL (una din cauze poate fi ca la detach s-a bifat Drop connections, ceea ce a intrerupt inclusiv conexiunea din SSMS), atunci in fereastra de conectare > Options > Connection Properties > in campul Connect to database se scrie master (nu se cauta in lista), apoi Connect, dupa care se pot urma pasii de mai sus pentru Attach.

MSSQL Index Fragmentation

Identificarea indecsilor cu fragmentare mai mare de 80% (TOP 10 – primele 10 inregistrari):

SELECT TOP 10 OBJECT_NAME(i.OBJECT_ID) AS TableName, i.name AS IndexName, indexstats.avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'DETAILED') indexstats
INNER JOIN sys.indexes i ON i.OBJECT_ID = indexstats.OBJECT_ID
WHERE indexstats.avg_fragmentation_in_percent > 80 AND i.index_id = indexstats.index_id;

Read More

Driver MSSQL pentru PHP

La unul din proiectele mele am avut nevoie sa extrag o serie de informatii din SAP si sa le introduc intr-o baza de date MySQL pe care apoi sa o extind cu informatii aditionale si sa creez/extrag diferite rapoarte. In configuratia clientului SAP folosea baze de date MSSQL, iar server-ul web pe care rula aplicatia rula CentOS administrat prin Plesk.

Pentru a se conecta la o baza de date MSSQL, PHP are nevoie de o extensie/un driver care sa-i permita acest lucru, la fel cum are nevoie de un driver pentru conectarea la o baza de date MySQL. Asa cum spune si documentatia PHP, driver-ul pentru MSSQL este disponibil numai pentru PHP care ruleaza pe Windows.

Read More