Welcome to Sign in | Help
in Search

CREATE DATABASE - cale absoluta pentru FILENAME

Last post 09-12-2008, 6:13 PM by B_gd_n[ ]Sahlean. 6 replies.
Sort Posts: Previous Next
  •  09-12-2008, 12:58 PM 5599

    CREATE DATABASE - cale absoluta pentru FILENAME

    Am urmatoare definitie:

    CREATE DATABASE [zz_test] ON PRIMARY

    ( NAME = N'zz_test', FILENAME = N'E:\Data\zz_test.mdf' , SIZE = 51200KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ),

    FILEGROUP [zz_test_IRQ]

    ( NAME = N'zz_test_IRQ', FILENAME = N'E:\Data\zz_test_IRQ.ndf' , SIZE = 2048KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ),

    LOG ON

    ( NAME = N'zz_test_log', FILENAME = N'e:\Data\zz_test_log.ldf' , SIZE = 353216KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)

    GO

    Pentru FILENAME trebuie sa furnizez calea absoluta: 'E:\Data\zz_test.mdf' si asta ma deranjeaza.

    Intrebarea: am posibilitatea sa dau doar numele fisierului care sa se construiasca in "Database Default Locations"?

    Multumesc!


    Florin Cardasim
  •  09-12-2008, 1:32 PM 5600 in reply to 5599

    Re: CREATE DATABASE - cale absoluta pentru FILENAME

    Pe cate stiu eu trebuie sa "dai" si numele fisierului si path-ul (care trebuie sa existe) - lucru specificat in BOL ---> CREATE DATABASE.

    Daca lucrul asta pare cam "tedious", poti sa folosesti un "sablon" pe care il obtii astfel:

    - "right click" pe numele bazei de date (Management studio ---> Databases)

    - "Script database as" ---> "Create to" ---> "New query editor window"

     

  •  09-12-2008, 1:32 PM 5601 in reply to 5599

    Re: CREATE DATABASE - cale absoluta pentru FILENAME

    Ca sa ocolesti problema, poti folosi calea implicita a instantei de sql server la care adaugi numele fisierelor.

    http://jeffsbits.blogspot.com/2008/07/getting-sql-server-2005-default-data.html
  •  09-12-2008, 1:40 PM 5602 in reply to 5601

    Re: CREATE DATABASE - cale absoluta pentru FILENAME

    Sintaxa (eronata oarecum) de la CREATE DATABASE din SQL2000 este

    CREATE DATABASE database_name
    [ ON
        [ < filespec > [ ,...n ] ]
        [ , < filegroup > [ ,...n ] ]
    ]
    [ LOG ON { < filespec > [ ,...n ] } ]
    [ COLLATE collation_name ]
    [ FOR LOAD | FOR ATTACH ]

    < filespec > ::=

    [ PRIMARY ]
    (
    [ NAME = logical_file_name , ]
        FILENAME = 'os_file_name'
        [ , SIZE = size ]
        [ , MAXSIZE = { max_size | UNLIMITED } ]
        [ , FILEGROWTH = growth_increment ] ) [ ,...n ]


    Pentru 'os_file_name' BOL se spune clar:

    Is the path and file name used by the operating system when it creates the physical file defined by the <filespec>. The path in os_file_name must specify a directory on an instance of SQL Server. os_file_name cannot specify a directory in a compressed file system.


  •  09-12-2008, 2:14 PM 5603 in reply to 5601

    Re: CREATE DATABASE - cale absoluta pentru FILENAME

    alexandrul:
    Ca sa ocolesti problema, poti folosi calea implicita a instantei de sql server la care adaugi numele fisierelor.

    http://jeffsbits.blogspot.com/2008/07/getting-sql-server-2005-default-data.html

    Sunt problematice functiile alea pentru ca daca nu ai definita o cale implicita pentru fisierele de date si pentru jurnal (Database Settings la nivel de server) atunci obtii "valoarea" NULL !

    SELECT dbo.udf_GetDefaultDataFilePath()

    NULL

  •  09-12-2008, 2:35 PM 5604 in reply to 5603

    Re: CREATE DATABASE - cale absoluta pentru FILENAME

    toate functiile din articol merg perfect in cazul meu, am testat cu valorile implicite si cu altele modificate
    (SQL2005, calea implicita: C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA)

    daca iti returneaza NULL, incerca sa verifici pas cu pas datele citite intern de functiile respective

  •  09-12-2008, 6:13 PM 5606 in reply to 5604

    Re: CREATE DATABASE - cale absoluta pentru FILENAME

    alexandrul:
    toate functiile din articol merg perfect in cazul meu, am testat cu valorile implicite si cu altele modificate
    (SQL2005, calea implicita: C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA)

    daca iti returneaza NULL, incerca sa verifici pas cu pas datele citite intern de functiile respective


    Intr-adevar. E necesara o rectificare: pe SQL2000DEV SELECT dbo.udf_GetDefaultDataFilePath() intoarce NULL dar pe SQL2005DEV intoarce valoarea corecta.
View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems