понедељак, 25. август 2014.

Clear cache na SQL

Vrlo korisna stvar pre početka merenja performansi napisane procedure na SQLu je očistiti keš. Pre pozivanja upita treba izvršiti sledeće komande:

CHECKPOINT; 
GO 
DBCC DROPCLEANBUFFERS; 
GO
EXEC sp_......

четвртак, 21. август 2014.

Pozicioniranje na izmenjeni slog na continous formi u Access-u

Nakon refresha continous/datasheet forme Access pozicionira pokazivač sloga na prvi slog u tabeli. Rešenje koje možda nije najelegantnije ali provereno radi :


Dim currID As Variant
currID = Me.ID
Dim rsC As Recordset
Set rsC = Me.RecordsetClone
Me.Requery
With rsC
    .Find "ID = '" & currID & "'"
    If .EOF Then
         MsgBox "Ne mogu da pronađem podatak"
     Else
         Me.Bookmark = .Bookmark
    End If
End With

петак, 15. август 2014.

Unique Constraint samo za nove unose

Imao sam zahtev da počev od ovog momenta svi podaci koji se unose u tabelu (VEEEELIKU) moraju da budu jedinstveni po određenom kriterijumu (kombinacija više polja). Najelegantnije rešenje za to je Unique Constraint u sledećem obliku:

USE ime_baze
GO

CREATE UNIQUE NONCLUSTERED INDEX [tabela_BezDuplihStavki] ON [dbo].[tabela]
(
[prvo_polje] ASC,
[drugo_polje] ASC
)
WHERE ([ID]>(poslednji_id.))
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO


Ovim se od poslednjeg unetog id-a u tabeli (poslednji_id) proveravaju svi naredni unosi.

среда, 13. август 2014.

Kako pronaći u SQL 2008 bazi tabele koje imaju uključen Change Tracking

Sledeći upit izlistava sve tabele u bazi  koje imaju uključen Change Tracking:

USE ime_baze
go

SELECT sys.schemas.name AS SchemaName, sys.tables.name AS TableName FROM sys.change_tracking_tables
JOIN sys.tables ON sys.tables.object_id = sys.change_tracking_tables.object_id
JOIN sys.schemas ON sys.schemas.schema_id = sys.tables.schema_id

уторак, 12. август 2014.

Produženje/zamena sertifikata za Exchange 2007

Da bi zamenili sertifikat za Outlook pristup Exchange Serveru 2007 potrebno je generisati novi i obrisati stari sertifikat. Prvo treba ustanoviti koji je ID starog sertifikata (Thumbprint) i to je najlakše ustanoviti iz dijaloga sa greškom o sertifikatu koji Outlook prikaže. Zatim generisati novi kucajući komandu iz Exchange Shell-a na serveru:

New-ExchangeCertificate

Sertifikat će automatski zameniti stari ali stari neće biti obrisan i njega brišemo komandom:

Remove-ExchangeCertificate -thumbprint [ID starog sertifikata - Thumbprint]

Novokreirani sertifikat treba povezati sa Exchange servisima:

Enable-ExchangeCertificate -thumbprint  [ID novog sertifikata - Thumbprint] -services:IIS,SMTP,POP,IMAP





SQL2008 - Prebacivanje vrednosti kolona tabele u jedan red

Sledeći kod vraća sve vrednosti iz kolone IDArtikla iz tabele FStavke za vrednost polja IDFakture odvojene zarezom u u jedan string:

SELECT STUFF( (SELECT        ', ' + CAST(IDArtikla  as nvarchar(10))
FROM   FStavke
WHERE        (IDFakture = 198093)
ORDER BY ID
                             FOR XML PATH('')),
                            1, 1, '')


понедељак, 2. јун 2014.

Problem sa startovanjem ili logovanjem na SQL server

Problem se javlja kada je Master baza oštećena ili kada zaboravite "sa" password. Takođe može da se desi da ako neko sa svojim nalogom instalira SQL a onda vi ne možete promenite privilegije na toj instanci. Rešenje je u sledećem:
1. Otvorite Configuration Manager iz "SQL Server Configuration" menija
2. Zaustavite željenu SQL instancu
3. Iz Properties->Advanced taba izaberite "Startup parameters" i dodajte “ ;–m” (pazite na razmak pre ;) na kraj linije
4. Restartujte instancu
 5. SQL Server instanca će se startovati single-user mod, napravite željene izmene (novi pass, restore mastera i sl.)
 6. Ne zaboravite da sklonite " ;-m" i ponovo restartujete SQL Server instancu

Nadam se da će ovo nekome pomoći :)