vrijdag 20 november 2009

SQL 2008 R2 CTP-NOV, MOSS2010 Beta, Office 2010 Beta , PowerPivot

Ze zijn beschikbaar. Dus wat doen we dan we gaan ze downloaden en er mee spelen....

SQL 2008 R2 CTP-NOV
32-bits = http://care.dlservice.microsoft.com/download/7/B/4/7B4A1F68-4D05-42C1-8982-E5CD8492C6FA/SQLFULL_x86_ENU.exe

64-bits = http://care.dlservice.microsoft.com/download/7/B/4/7B4A1F68-4D05-42C1-8982-E5CD8492C6FA/SQLFULL_x64_ENU.exe

De DVD Iso image met beide versies = http://go.microsoft.com/fwlink/?LinkID=165365&clcid=0x409

MOSS 2010 BETA (SharePoint) is alleen in een 64-bits versie beschikbaar. Helaas voor mij heb ik niet de hardware om hier iets mee te doen. :-( (Registratie is gevraagd)
http://www.microsoft.com/downloads/details.aspx?FamilyID=77c30c6c-47fc-416d-88e7-8122534b3f37&displaylang=en

Office 2010 BETA (Ook hier is een registratie nodig):
http://technet.microsoft.com/nl-nl/evalcenter/ee390818(en-us).aspx

PowerPivot (Het Gemini product):
32-bits = http://go.microsoft.com/fwlink/?LinkID=168583&clcid=0x409
64-bits = http://go.microsoft.com/fwlink/?LinkID=168584&clcid=0x409

Volgens mij staat er momenteel geen 32Bits MOSS 2010 versie in de planning. Jammer voor ons die niet beschikken over een aantal 64 bits servers om bovenstaande te hosten.

Ook heb ik al gezien dat het MDS product van Microsoft alleen in een 64Bits versie beschikbaar is. Dus ook hier kan je niet even meer zomaar thuis mee spelen...

vrijdag 25 september 2009

Moet het altijd over SQL gaan? (Windows 7 show desktop Icon)

Afgelopen weekend heb ik Vista vervangen door Windows 7 op mijn laptop. De laptop is verder ingericht met 3 versies van SQL namelijk 2000/2005/2008.

Mijn laptop is geen 64 bits en bevat maar 4 GB aan geheugen. Dus om alle services altijd actief te hebben is niet echt goed voor de performance. Daarom dus een berg icoontjes op mijn desktop voor het stoppen en starten van de SQL Services:



Dus mijn eerste vraag is waar is mijn show desktop icon!!!!, je kan hem niet meer aanzetten in de taskbar properties, daar zag ik echter wel iets over een desktop preview... dus er moet iets zijn maar waar is dat ding gebleven?


Zoeken dus en na een tijdje is hij te vinden waar, kijk zelf maar:

dinsdag 15 september 2009

Datum formaat in Microsoft T-SQL

Binnen mijn werk waar ik regelmatig moet samenwerken met Oracle specialisten krijg ik vaak opmerkingen over de datum functies van MS T_SQL.

"Ze zijn niet handig, lastig in gebruik, waarom kan ik niet gewoon net als in oracle gebruikmaken van bv: to_date('01-JAN-2002'),'YYYYMMDD') maar moet ik getal codes gebruiken?"

CONVERT(VARCHAR(8),GETDATE(),112) = yyyymmdd (ISO) of CONVERT(VARCHAR(10),GETDATE(),103) = dd/mm/yyyy (ISO)

Naar mijn mening het is niet moeilijker maar anders en je moet er aan wennen.

Kan je echter niet wennen aan de CONVERT functie van MS T-SQL dan zijn er nog voldoende andere mogelijkheden die voldoende flexibiliteit bieden.
Voor een overzicht kijk je een keer op: http://msdn.microsoft.com/en-us/library/ms186724.aspx

DATEPART is de meest flexibele functie die je kan gebruiken om ieder formaat aan je datum te geven. Ok, het is niet zo eenvoudig als to_date, maar dat is voor 99% wennen.

SELECT
CAST(DATEPART(yyyy,GETDATE()) AS VARCHAR(4)) AS 'Jaar'
, CAST(DATEPART(mm,GETDATE()) AS VARCHAR(2)) AS 'Maand'
, CAST(DATEPART(dd,GETDATE()) AS VARCHAR(2)) AS 'Dag'
, CAST(DATEPART(yyyy,GETDATE()) AS VARCHAR(4)) +
RIGHT('0'+CAST(DATEPART(mm,GETDATE()) AS VARCHAR(2)),2) +
RIGHT('0'+CAST(DATEPART(dd,GETDATE()) AS VARCHAR(2)),2) AS 'yyyymmdd'

Resulteerd in:

Jaar Maand Dag yyyymmdd
---- ----- ---- --------
2009 9 16 20090916

Wil je alleen jaar,maand,dag wilt gebruiken kan dit natuurlijk ook met 3 specifieke functies:

SELECT
DAY(GETDATE()) AS 'Dag'
, MONTH(GETDATE()) AS 'Maand'
, YEAR(GETDATE()) AS 'Jaar'

"Moet ik dan iedere keer een lange query typen om iets eenvoudigs te realiseren". Kijk dan eens naar de mogelijkheden van SQL Server Management Studio Template Explorer.




vrijdag 11 september 2009

service users in Vista, Windows7 & Windows Server 2008 verbergen

Ik heb een laptop met Vista Enterprise waarop 3 instances van SQL actief zijn. SQL2000 / 2005 / 2008. Alle services van de instances draaien onder hun eigen service accounts.

Als je echter accounts aanmaakt in Vista worden deze automatisch getoond in het welcome screen als login accounts.

Hieronder zijn de stappen beschreven om deze accounts te verbergen:
1 - Start regedit.exe
2 - Ga naar key: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
3 - R_Klik op de Winlogon key en selecteer New > Key
4 - Typ SpecialAccounts , Let op is hoofdletter gevoelig
5 - R_Klik op de SpecialAccounts key en selecteer New > Key
6 - Typ UserList , Let op is hoofdletter gevoelig
7 - R_Klik op de UserList key en selecteer New > DWORD (32-bit) Value
8 - Type de usernaam die je wilt verbergen ook deze is hoofdlettergevoelig
9 - Voer een 0 (nul) in voor de Value Data , 0 verbergt het account van het welcome login screen, 1 maakt het zichtbaar.

vrijdag 4 september 2009

SSIS Truncation Warning (die niet nodig is)

Ik heb een SSIS package voor het verzamelen van gegevens van SQL2000 instances in het netwerk informatie tbv een migratie inventarisatie naar SQL 2008.

Een van de stappen is een DFT met een OLE_SRC query:

SELECT CONVERT(nchar(1),SERVERPROPERTY('ISCLUSTERED)) AS 'IsClusterd'
en een paar andere properties die voor de uitleg niet van belang zijn


De SS_DST tabel bevat een nchar(1) kolom voor het opslaan van deze property. SSIS blijft echter een warning geven:

ServerInfo_BaseInfo [37]: Truncation may occur due to inserting data from data flow column "IsClustered" with a length of 255 to database column "IsClustered" with a length of 1.

Waarom? Het veld is toch echt 1 lang. Ik zou een DCNV kunnen toevoegen om het veld echt op 1 lengte te zetten, dit helpt maar waarom gaat het fout?

Waarschijnlijk heb ik een later stadium pas the convert(nchar(1) toegevoegd), helaas wordt de SQL meta data voor de output columns niet bijgewerkt in de OLE_SRC.

Oplossing:

Ga naar Advanced edit mode van de OLE_SRC query


Deze eerste External Columns staat reeds goed dus dit is niet de oorzaak.















De Output columns dan maar even nakijken:


En daar is het issue, de length staat nog op 255, even aanpassen en de truncate errors zijn verdwenen.





donderdag 11 juni 2009

Data type wijzigen in een DSV Named Query voor SSAS geeft Max Length Error

De situatie is als volgt:

In een DSV wordt gebruik gemaakt van een named query voor een fact tabel.
Tijdens het maken van de relaties op een column van de fact tabel en de column in een dim tabel krijg je de error: The abc Source Column and xyz Destination Column have different data types....

Nu blijk je in de named query een convert te hebben gebruikt voor de abc column:
CONVERT(VARCHAR(8), GETDATE(),112) AS 'abc'

De xyz column in de dim tabel is van data type INT.

De oplossing zou dus zijn om de convert uit te breiden en deze te casten als INT:
CAST(CONVERT(VARCHAR(8), GETDATE(),112)) AS INT) AS 'abc'

Dit resulteerd echter in de volgende error:
"Max length applies to string data type only. You cannot set column 'abc' property maxlength to be non-negative number".

De enige oplossing die ik heb kunnen hanteren om hier aan voorbij te komen is:
1 - Open de named query en copy de query tekst
2 - Delete de named query van de DSV
3 - Voeg een nieuwe named query toe aan de DSV
4 - Paste de query in de query editor en wijzig de convert...
5 - Save de nieuw Named query

Dit wordt nu door wel geaccepteerd.
Iemand een andere oplossing? Laat het dan even weten.....

zondag 7 juni 2009

Uitvullen met nullen (He dat rijmt) of te wel Leading Zeros

Er zijn meerdere mogelijkheden beschikbaar. Ik toon de voor mij zelf toch eenvoudigste mogelijkheid. Ik probeer deze methoden altijd aan te houden, ook omdat het meerdere opties biedt dan alleen nullen te gebruiken.


USE AdventureWorks
GO
SELECT
RIGHT(REPLICATE('0',10) + CAST(ContractID AS VARCHAR(10)),10) AS 'ContractID'
FROM HumanResources.Employee


Het voordeel van deze methoden vindt ik zeker dat je in de code duidelijk kan zien hoeveel posties je gaat toevoegen, zeker als een lange reeks nullen moet worden toegevoegd is het soms lastig te tellen als deze gewoon als tekst string worden aangegeven '00000000000000000000' hoeveel?

Heb jij een betere oplossing?

donderdag 21 mei 2009

Foutje in Technet Webcast Data Mining

Het is een oude webcast maar kan goed gebruikt worden om toch vaak gemaakte fout met Data Mining aan het licht te brengen.

Webcast: Introduction to Data Mining with SQL Server 2005

Op een gegeven moment wordt in de demo een Report aangemaakt met behulp van een DMX query tegen het CustomerTarget Decision Tree mining model. Als je goed kijkt naar het resultaat zie je dat predictprobability functie overal dezelfde percentages weergeeft. De presentator praat er gewoon overheen door te zeggen dat de getoonde percentage allemaal boven de waarde ligt van de where clause in de query...

Dit is echter niet goed, normaal gesproken zou je verschillende percentage uit een perdictprobability function moeten krijgen.

Wat is nu de oorzaak?

In het data mining model voor de decision tree is het veld AGE geselecteerd. Als je nu de tree displayed dan is dit veld het eerste veld waarop de nodes gaan splitsen. In het dataset dat gebruikt wordt om het rapport te maken zit echter geen AGE object. Het model kan de data dus niet volledig door het DT model laten gaan en komt dus op ongeveer een 50/50 voorspelling uit.

Gebruik je het Naive Bayens model dan zie je wel verschillende waarde, dit model ignored echter het AGE object omdat het hier niet mee kan werken.

De oplossing voor als je dit zelf in een demo wilt tonen is het AGE object niet mee te nemen in het data mining model. Een andere oplossing is de AGE via een named calculation in de DSV toe te voegen:

Wil je zelf de demo een keer proberen? Je kan een PDF hier downloaden met de stappen van de demo.

zondag 17 mei 2009

Microsoft Certified IT Professional BI SQL 2008

Het is gelukt!

Nadat ik een tijdje geleden het beta examen 071-452 had gehaald, heb ik gisteren het tweede examen 070-448 gedaan voor het behalen van de MCITP status.

Hoewel sommige vragen onbegrijpelijk blijven, en dan bedoel ik de detail vragen over welke attribute property expression je bijvoorbeeld moet wijzigen, Ik zou hier een boek voor pakken om weer even uit te zoeken wat het ook al weer doet. Ben ik blij dat ik het gehaald heb.

Ben je zelf ook gecertificeerd? Wil je wel eens zien of dit nu echt uniek is kijk dan hier.

Op het moment van dit schrijven zijn er 137 MCITP's BI Development 2008 in de wereld.

maandag 11 mei 2009

Cumulative update package 3 for SQL Server 2005 Service Pack 3

Microsoft heeft een cumulatief hotfix pack uitgegeven om te installeren nadat SP3 voor SQL 2005 is geinstalleerd.

Meer informatie: http://support.microsoft.com/kb/967909/en-us

zaterdag 18 april 2009

Microsoft SQL Server Reporting Services en Vista.

Een tijdje geleden al weer mijn laptop eens voorzien van Vista, stond er al op maar had het vervangen door Windows XP omdat ik als vele niet echt in Vista geloofde. Ook dit is echter weer een gewennings proces en vind Vista eigenlijk best wel lekker werken.

Alleen sommige dingen gaan niet zo flexibel als je zou willen, en dit geld ook voor het gebruik van SSRS en Vista. Ook ik had het niet meteen aan de praat en heb een aantal Microsoft KB's, blogs van andere moeten lezen en eigen ideeën moeten toepassen voordat ik zover was. Ik hoop dat ik nu alles op een rijtje heb en dat jullie hier voordeel uit kunnen halen dus laten we maar beginnen.


Hoewel ik in het Nederlands blog werk ik altijd met de engelstalige software dus zijn de verwijzigen in het engels.
Stap 1 Installatie van IIS7 en de juiste onderdelen:

  1. Control Panel > Programs > Klik "Turn Windows features on or off"
  2. Indien je in Vista de "UAC" (User Access Control) nog niet hebt aangepast krijg je je eerste "Windows needs your permission" melding voor je kiezen...
  3. Klik de "Internet Information Services" node open en selecteer de onderstaande onderdelen"
  4. Klik Ok en volg de verdere instructies op het scherm voor het afronden van de installatie van IIS7

Stap 2 Installatie van SQL 2005 SSRS

  1. Eigenlijk is dit de standaard installatie en configuratie van SSRS. Ik ga er dus geen extra woorden aan besteden dan te zeggen dat indien je dit nog nooit hebt gedaan maar eens moet zoeken op google...
  2. Ok één extra opmerking, voordat je SSRS goed aan de praat kunt krijgen in Vista moet je minimaal SP2 voor SQL geinstalleerd hebben. Aangezien SP3 reeds beschikbaar is zou ik die maar installeren....
  3. Toch niet nog maar een opmerking, IIS7 heeft een nieuw security level op Applications waar SSRS niet goed mee overweg kan. Je moet dus in de "Reporting Services Configuration Manager" bij de sectie "Web Service Identity" niet kiezen voor de Default Application Pool maar een nieuwe defineren. Dit mag voor de Report Server en Manager dezelfde zijn.

Ok, we zouden nu dus klaar kunnen zijn, laten we het eens proberen door het openen van de Report server manager:

http://localhost/reports

Een grote kans bestaat dat je de onderstaande melding gaat krijgen:








Als je de reportserver url http://localhost/reportserver heb je een grote kans op de de volgende error:

Dus waar zullen we eens beginnen?

Het eerste waar we naar gaan kijken is de settings van de application pool die aangemaakt is in de SSRS Configuration Wizard:

  1. Open de Internet Information Services Management Console, in Vista kan je deze eenvoudig vinden door in de search van het start menu even IIS in te typen.
  2. Weer eens een "Windows needs your permission...." melding
  3. Open de "Application Pool" node
  4. Dubbel click de Application Pool die je in de SSRS configuration hebt aangemaakt
  5. Managed Pipeline Mode moet op "Classic" staan.
  6. Blijf even in het IIS Management console

W zijn er nog niet, nu moeten we de script rechten op de Virtual Reporting folders in SSRS nog goed zetten:

  1. Open de Sites node
  2. Open de Default Website Node
  3. Klik de "Reports" virtual folder
  4. Dubbel klik op "Handler Mappings"
  5. Klik in het Actions menu (Rechts in het MMC) op Edit Feature Permissions
  6. Selecteer de onderstaande opties en klik op Ok:
  7. Herhaal deze stappen voor de "Reportserver" virtual folder

We zijn nu zover om weer een te kijken of alles al functioneerd, open de report manager URL maar weer eens: htp://localhost/reports

Wat zien we? Tenminste ik...


Het lijkt dus te werken, ik mis alleen nog het één en ander, zoals waar is de properties tab, site settings optie ed...

Dit kan met twee dingen te maken hebben:

  1. Je moet IE als administrator uitvoeren...
  2. De website http://localhost/ moet worden toegevoed aan trusted sites..

Voor punt 1 klik je met de rechter muistoets op IE start icoon en kies je voor "Run as Administrator"
Voor punt 2 kan je nadat je IE hebt geopend als Administrator gaan naar:

  1. Internet Options
  2. Tab Security
  3. Klik op Trusted Sites
  4. Klik op Sites
  5. Veg de http://localhost/ site toe....
  6. Waarschijnlijk gebruik je geen SSL en moet je eerst het vinkje bij Require Server verification..... deselecteren.
  7. Om te zorgen dat je alle opties van de Report manager te zien krijgt moet je de security level van de Trusted Sites even op het laagste niveau zetten. Dit draaien we later weer terug...
  8. Sluit IE

Open IE weer als Administrator en ga weer naar de Reportmanager URL http://localhost/reports

Wat zien we nu?



Dit is wat we willen.... Ik wil echter niet iedere keer IE als administrator openen dus nog wat extra stappen en we zijn er:

  1. Klik in IE Report Manager op "Site Settings"
  2. Onder de Security Sectie klik je op "Configure Side-Wide Security"
  3. Klik " New Role Assignment"
  4. Type in het vakje voor group or user name de username waarmee je normaal in Vista werkt. (inclusief computernaam) dus computer01\testuser
  5. Selecteer het vakje voor "System Administrator"
  6. Klik OK
  7. Klik op "Home"
  8. Klik de "Properties" tab
  9. Klik "New role Assignment"
  10. Type in het vakje voor group or user name de username waarmee je normaal in Vista werkt. (inclusief computernaam) dus computer01\testuser
  11. Selecteer het vakje voor "Content Manager"
  12. Klik OK

We zijn eigenlijk klaar, verhoog weer de security van de trusted sites, volgens mij is de default "Medium" .

Sluit IE en open deze weer als de standaard gebruiker uit de voorgaande stappen, dus niet Run as Administrator.

Open de report manager url http://localhost/reports.....

Alles zou nu normaal moeten functioneren. Tenminste wel bij mij......

vrijdag 9 januari 2009

SQL 2005 database in recovery na chrash

Hebben jullie het ook al een paar keer meegemaakt?

Je hebt wat problemen op je database server of door andere reden wordt de SQL service gestopt tijdens het runnen van een database proces. Bij het opkomen van de database server is een database in recovery.

Je hebt niet de tijd om het recovering proces af te wachten en je wil de database droppen en een restore terug zetten.

Gebruik hiervoor:
ALTER DATABASE MyDB
SET EMERGENCY

Het is nu mogelijk on de database met een drop command te verwijderen.

Je moet lid zijn van de sysadmin role om bovenstaande acties te mogen uitvoeren.'

MvG,
Arjan