Posts
231
Comments
64
Trackbacks
4
October 2007 Entries
Länderpräfixe aus Telefonnummern entfernen

Hier mal ein Beispiel wie man mit einer stored procedure Länderpräfixe aus Telefonnummern entfernen und in ein anderes Feld schreiben kann:

CREATE PROCEDURE TelPrefix
AS
BEGIN
    DECLARE @tel1 VARCHAR(50)
    DECLARE @tel2 VARCHAR(50)
    DECLARE @fax VARCHAR(50)
    DECLARE @prefix_int VARCHAR(50)
    DECLARE @id decimal(15, 0)
    DECLARE @positonKlammer INT
    

    DECLARE #Curs CURSOR fast_Forward FOR
    SELECT [prefixe_int], [tel1], [tel2], [fax], id
    from tabelle
    WHERE (LEFT(tel,1)='+' OR LEFT(tel1,2)='00')

    
    OPEN #Curs
    Fetch next from #Curs into @prefix_int, @tel, @id
    while @@FETCH_STATUS = 0

    BEGIN

        IF LEN(@tel1) > 0 BEGIN

            SET @positonKlammer = PATINDEX('%(%',@tel1) -1
            -- vielleicht gibt es ein Leerzeichen statt einer Klammer
            IF @positonKlammer<0
                SET @positonKlammer = PATINDEX('% %',@tel1)
            -- vielleicht gibt es ein "- "statt einer Klammer
            IF @positonKlammer<0
                SET @positonKlammer = PATINDEX('%-%',@tel1)
            
            IF @positonKlammer>0
            BEGIN

                SET @prefix_int = LEFT(@tel1,@positonKlammer)
                -- keine Klammern und keine führenden und folgenden Leerzeichen
                SET @prefix_int = RTRIM(LTRIM(REPLACE( REPLACE(@prefix_int,'+',''), '00','') ) )
                SET @tel1 = RIGHT(@tel1,LEN(@tel1)-@positonKlammer)
                SET @tel1 = RTRIM(LTRIM(REPLACE( REPLACE(@tel1,'(',''),')','')))
            END

        END


        IF @positonKlammer>0
            UPDATE Tabelle SET tel=@tel, fax=@fax, prefixe_int=@prefix_int WHERE id=@id

       Fetch next from #Curs into @prefix_int, @tel, @id

    END

    CLOSE #Curs
    deallocate #Curs


END

posted @ Wednesday, October 31, 2007 2:39 PM | Feedback (0)
Alle Indexe einer Datenbank ermitteln und löschen

Neulich musste ich in einer Datenbank alle Indexe löschen, dabei habe ich mir mit folgenden Select-Befehl im Result-Fenster die entsprechenden Drop-Befehle generiert, diese anschliessend kopiert und als SQL-Befehle abgesetzt:

SELECT
' Drop index dbo.' + SO.[name] +'.'+ SI.[name]
FROM
    SYSOBJECTS SO
INNER JOIN
    SYSINDEXES SI
    INNER JOIN
        SYSINDEXKEYS SIK
    ON
        SIK.[id] = SI.[id]
    AND
        SIK.indid = SI.indid
        INNER JOIN
            SYSCOLUMNS SC
            INNER JOIN
                SYSTYPES ST
ON
                SC.xtype = ST.xtype
     ON
                SIK.[id] = SC.[id]
            AND
                SIK.colid = SC.colid
            ON
                SO.[id] = SI.[id]
WHERE
    SO.xtype = 'u'
AND
    SI.indid > 0
AND
    SI.indid < 255
AND
    (SI.status & 64)=0
ORDER BY
    SO.[name]
    , SI.[name]

 

posted @ Friday, October 19, 2007 2:58 PM | Feedback (0)
Ein Feld einer Tabelle mit einem Feld aus einer anderen Tabelle updaten

Heute musste ich die SpalteA aus der TabelleA mit dem Wert der SpalteB der TabelleB updaten, meine Lösung war so:

UPDATE TabelleA 
SET SpalteA=Quelle.SpalteB
FROM TabelleA AS Ziel
INNER JOIN SpalteB _wws AS Quelle ON Quelle.id = 1

posted @ Tuesday, October 16, 2007 1:12 PM | Feedback (0)
Kostenloses Tool zur Verwaltung mehrerer Remote Desktop Verbindungen

Hier gibt es ein kostenloses Tool (visionapp Remote Desktop) zur Verwaltung mehrerer Remote Desktop Verbindungen: http://www.visionapp.com/141.0.html?

Ideal wenn man ständig auf mehrere Server zugreifen muss.

posted @ Wednesday, October 10, 2007 9:00 AM | Feedback (0)
Visualisierung der Internetnutzung und -verbreitung

Bei Heise.de fand ich gestern einen Hinweis auf die Seite von Chris Harrison (http://chrisharrison.net/projects/InternetMap/index.html).

Dieser hat die Daten des Dimes Projektes (http://www.netdimes.org/new/?q=node/7) visualisiert und so die weltweite Internetnutzung und -verbreitung grafisch dargestellt.

Hier zwei Beispiele:

World Connection Density:


World City-to-City Connections:

Quelle: http://chrisharrison.net/projects/InternetMap/index.html

posted @ Monday, October 08, 2007 1:51 PM | Feedback (0)
Monatsübersichten mit "case when" erstellen

Hier ein Beispiel wie man mit TSQL und "case when" schnell und einfach Monatsübersichten erstellen kann:

SELECT jahr as 'Year',
sum( case when periode = 1 then netto else 0 end) as 'Jan.',
sum( case when periode = 2 then netto else 0 end) as 'Feb.',
sum( case when periode = 3 then netto else 0 end) as 'Mar.',
sum( case when periode = 4 then netto else 0 end) as 'Apr.',
sum( case when periode = 5 then netto else 0 end) as 'May',
sum( case when periode = 6 then netto else 0 end) as 'Jun.',
sum( case when periode = 7 then netto else 0 end) as 'Jul.',
sum( case when periode = 8 then netto else 0 end) as 'Aug.',
sum( case when periode = 9 then netto else 0 end) as 'Sep.',
sum( case when periode = 10 then netto else 0 end) as 'Oct.',
sum( case when periode = 11 then netto else 0 end) as 'Nov.',
sum( case when periode = 12 then netto else 0 end) as 'Dec.',
sum(netto) as 'Total'
FROM tabelle
group by jahr
ORDER BY jahr desc

 

posted @ Tuesday, October 02, 2007 1:10 PM | Feedback (0)