locked
kellen egy ember aki tud szintaktikai elemzot irni RRS feed

  • Question

  • no nem nekem..
    az Msnek az SQL fejleszto reszlegehez...
    agyrem, hogy 2005ben
    - nem kepes egy nyelv lekezelni elajras hivasnal azt, amit fgv hivasnal le tud (ez nem megy: exec Valamisp  @a= 1+2 ez megy: select dbo.ValamiFgv(1+2) )
    - az XML egy uj adattipus volt az SQL2005ben, megis XMLPath nem lehet semmi mas CSAK STRING KONSTANS, meg valtozo sem! (n.Value(@xmpath,'int) ilyet nem lehet...)
    - az openquery sem kepes kezeleni semmit, csak string konstanst
    - egyes parapncsok sem kezelenek semmit csak string konstansokat ! (pl create login @nev nem megy)
    - SQL bealliotasokat a Registryben tarolnka de nincs hozza szabvany lekerdezo, csak nem dokumetalt turik.
    - egyes parancsoknak nem lehet kihagyni par parameteret, mert nem tudja "default"olni.

    create database DBFNev
    on
    (
    name = N'DBFNev',
    filename = @f, -- ezt ne lehet elhagyni, ha meg akarom adni a kov 2 sort, es ide nem eleg az MDF neve, kell az utvonal is, amig csak nem dokumentalt xp_regread-del lehet kiolvasni
    maxsize = unlimited,
    filegrowth = 10%
    )

    es egy kicsit mas...

    - mivel Create/alter SP-nel csak minimalis ellenorzes van, igy igazan lehetne egy kapcsolo, hogy az openquery-k ben levo dogot csekkolja vagy sem, mert mi van ha epp akkor akarom alterelni az SPt amikor nem erheto el az a LNK szerver ahova atnyulok?


    hirtelen ennyi (most epp a denti cuccal huztam fel magam, bocsi..)
    ezek olyan dolgok amik szerintem NAGYON CIKIK igy a XXI. szazad elejen....

    Potyos
    Wednesday, March 18, 2009 5:04 PM

All replies

  • ja mielott valakinek illuzio lennenek, a fenti egyszeri parancs igy akart kinezni eredetileg:(ezt szerettem vola, a tobbi dolgot defaultozza magatol :) )
    create database MyDb  
    on 
    (  
        maxsize = unlimited,  
        filegrowth = 10%  
    )  
    log on 
    (  
        maxsize = unlimited,  
        filegrowth = 10%  
    de nem megy a defaultozas, nincs normalis mod a default sql pathok lekeresere, nem lehet valtozot megadni parameternek
    ezert ez lett belole:

    declare @sRegistryValue NVarchar(4000)  
        , @instanceName nvarchar(1000)  
        , @i int 
        , @Key nvarchar(1000)  
        , @Path nvarchar(1000)  
        , @DBPath nvarchar(1000)  
     
    set @instanceName = @@servername  
    set @i =charindex('\',@instanceName)   
     
    if @i> 0  
        set @instanceName = Substring(@instanceName,@i+1,500)  
    else 
        set @instanceName = 'MSSQLSERVER' 
     
    EXEC master.dbo.xp_regread N'HKEY_LOCAL_MACHINE' 
        , N'Software\Microsoft\Microsoft SQL Server\Instance Names\SQL\' 
        , @instanceName  
        , @sRegistryValue OUT 
    set @Key = @sRegistryValue  
    set @path='Software\Microsoft\Microsoft SQL Server\'+@Key+'\Setup\' 
    EXEC master.dbo.xp_regread N'HKEY_LOCAL_MACHINE' 
        , @Path  
        , N'SQLDataRoot' 
        , @sRegistryValue OUT 
     
    set @path='Software\Microsoft\Microsoft SQL Server\'+@Key+'\MSSQLServer\' 
    EXEC master.dbo.xp_regread N'HKEY_LOCAL_MACHINE' 
        , @Path  
        , N'DefaultData' 
        , @sRegistryValue OUT 
     
    set @DBPath = @sRegistryValue+'\' 
     
    declare @F nvarchar(1000), @l nvarchar(1000)  
    select @f = @DBPath+N'MyDb.mdf', @l =@DBPath+N'MyDb_log.ldf' 
    declare @sql nvarchar(4000)  
    set @sql = '
    create database MyDb
    on
    (
        name = N''MyDb'',
        filename = N'''+@f+''',  
        maxsize = unlimited,  
        filegrowth = 10%  
    )  
    log on 
    (  
        name = N''MyDb_log'',  
        filename = N'''+@l+''',  
        maxsize = unlimited,  
        filegrowth = 10%  
    )'  
    exec (@sql)  
     
     


    Potyos
    Wednesday, March 18, 2009 5:19 PM