Teknikdagboken En blogg om teknik i vardagen

28Dec/100

Dagens tips – Laga användare efter återställning i MS SQL

Som utvecklare tar jag hyfsat ofta backup och göra återläsningar av databaser. När man gör detta tappar SQL användarna sina inloggningar och jag har inte funderat så mycket på det utan bara tagit bort och skapat upp dem igen. Naturligtvis finns det ett mer elegant sätt. Man kan köra en stored procedure på databasen i fråga så fixas detta.

EXEC sp_change_users_login 'Auto_Fix', 'Användarnamn', NULL, 'Lösenord' 

Kanske helt uppenbart för vissa personer men jag och många andra hade missat detta.

8Dec/100

Köra en stored procedure för varje rad i SELECT

Idag behövde jag ta bort ca 300 rader och kunde få ut berörda rader med en SELECT fråga. För att ta bort en rad behövde jag köra en stored procedure för att även ta bort relaterande data. Detta löstes smidigt genom följande script som jag hittade på Stackoverflow:

declare @field1 int
declare @field2 int
declare cur CURSOR LOCAL for
    select field1, field2 from sometable where someotherfield is null

open cur

fetch next from cur into @field1, @field2

while @@FETCH_STATUS = 0 BEGIN

    --execute your sproc on each row
    exec uspYourSproc @field1, @field2

    fetch next from cur into @field1, @field2
END

close cur
deallocate cur