mercoledì 29 febbraio 2012

Ricavare Giorno della settimana da una data

SELECT    CASE
            WHEN DATENAME(dw, GETDATE()) = 'Sunday'
                THEN 'Domenica'
            WHEN DATENAME(dw, GETDATE()) = 'Monday'
                THEN 'Lunedi'
            WHEN DATENAME(dw, GETDATE()) = 'Tuesday'
                THEN 'Martedi'
            WHEN DATENAME(dw, GETDATE()) = 'Wednesday'
                THEN 'Mercoledi'
            WHEN DATENAME(dw, GETDATE()) = 'Thursday'
                THEN 'Giovedi'
            WHEN DATENAME(dw, GETDATE()) = 'Friday'
                THEN 'Venerdi'
            WHEN DATENAME(dw, GETDATE()) = 'Saturday'
                THEN 'Sabato'
            ELSE 'Errore'
        END AS Giorno

lunedì 27 febbraio 2012

CTE che contiene una colonna contatore generata

declare @limit int
set @limit = 100

;with MyCte AS
    (select   MyCounter = 1
     UNION ALL
     SELECT   MyCounter + 1
     FROM     MyCte
     where    MyCounter < @limit )
    
select MyCounter
from   MyCte
option (maxrecursion 0)

venerdì 24 febbraio 2012

aggiungere server collegato Access ACCDB

declare @nomeServer nvarchar(MAX)
declare @serverPath nvarchar(MAX)  /* il file deve essere SULLA STESSA MACCHINA*/
set @nomeServer = 'server name'
set @serverPath = 'file mdb full path'

EXEC sp_addlinkedserver
    @server = @nomeServer,
    @provider = N'Microsoft.Jet.OLEDB.4.0',
    @srvproduct = N'Access',
    @datasrc = @serverPath

-- setto logina al nuovo Server DB
EXEC sp_addlinkedsrvlogin
    @rmtsrvname = @nomeServer,
    @useself = N'FALSE'
    /* dati non necessari per DB senza USR e PSW */
    --,@locallogin = NULL
    --,@rmtuser = NULL 
    --,@rmtpassword = NULL

-- TEST: lista tabelle per nuovo server
EXEC sp_tables_ex @nomeServer
GO