Welcome to Sign in | Help
in Search

Tabela cu "." in nume

Last post 11-30-2010, 4:15 PM by cosmin.luca. 6 replies.
Sort Posts: Previous Next
  •  11-30-2010, 12:21 PM 8525

    Tabela cu "." in nume

    Salut! Am o baza de date care contine o tabela "." in nume. Din cauza aceasta nu pot sa rulez scriptul urmator:

    DECLARE CRS_TABLENAME CURSOR FOR
    SELECT [NAME] FROM SYSOBJECTS WHERE XTYPE = 'U'
    OPEN CRS_TABLENAME
    FETCH NEXT FROM CRS_TABLENAME INTO @TABLE_NAME

    while @@fetch_status = 0
    begin
    DBCC DBREINDEX(@TABLE_NAME,'',0)
    FETCH NEXT FROM CRS_TABLENAME INTO @TABLE_NAME
    end

    Stiu ca trebuie sa pun delimitator "[]" dar imi da eroare daca pun. Multumesc pentru ajutor!
  •  11-30-2010, 1:24 PM 8527 in reply to 8525

    Re: Tabela cu "." in nume

    Ar fi bine sa poti schimba numele tabelei. E o buna practica sa respecti regulile de aici
    http://msdn.microsoft.com/en-us/library/ms175874.aspx
    La ce mesaj de eroare te referi in final?
  •  11-30-2010, 2:50 PM 8528 in reply to 8525

    Re: Tabela cu "." in nume

    Încearcă aşa:

    --CREATE TABLE [NR.1] (X INT)

    DECLARE @TABLE_NAME nvarchar(517)
    DECLARE CRS_TABLENAME CURSOR LOCAL READ_ONLY FOR
    SELECT QUOTENAME(SCHEMA_NAME(schema_id))+'.'+QUOTENAME(name) FROM sys.tables -- pentru SQL 2005 sau ulterior
    --SELECT QUOTENAME(USER_NAME(uid))+'.'+QUOTENAME([NAME]) FROM SYSOBJECTS WHERE XTYPE = 'U' -- doar pentru SQL 2000 sau mai vechi
    OPEN CRS_TABLENAME

    WHILE 1=1 BEGIN
    FETCH NEXT FROM CRS_TABLENAME INTO @TABLE_NAME
    IF @@FETCH_STATUS <> 0 BREAK
    PRINT @TABLE_NAME
    DBCC DBREINDEX(@TABLE_NAME,'',0)
    END

    CLOSE CRS_TABLENAME
    DEALLOCATE CRS_TABLENAME

    Răzvan
  •  11-30-2010, 2:51 PM 8529 in reply to 8527

    Re: Tabela cu "." in nume

    Nu pot sa modific numele tabelei pentru ca nu am facut eu BD. Am incercat ceva de genul
    DBCC REINDEX([@TABLE_NAME],.....) sau DBCC REINDEX("@TABLE_NAME",.....) si imi da eroare. Nu stiu cum sa pun delimitatori.
  •  11-30-2010, 2:57 PM 8530 in reply to 8528

    Re: Tabela cu "." in nume

    rsocol o sa am aceeasi eroare.  La DBCC DBREINDEX(@TABLE_NAME......

    Msg 2520, Level 16, State 5, Procedure PS_REINDEX_ALL, Line 13
    Could not find database 'campRap'. Check sys.databases.

    Tabelul se cheama 'campRap.1_1'. Daca ar fi sa fac doar pentru tabelul acesta as scrie
    DBCC DBREINDEX([campRap.1_1],........) sau DBCC DBREINDEX("campRap.1_1",........)

  •  11-30-2010, 4:10 PM 8531 in reply to 8530

    Re: Tabela cu "." in nume

    cosmin.luca:
    rsocol o sa am aceeasi eroare.  La DBCC DBREINDEX(@TABLE_NAME......

    Msg 2520, Level 16, State 5, Procedure PS_REINDEX_ALL, Line 13
    Could not find database 'campRap'. Check sys.databases.

    Tabelul se cheama 'campRap.1_1'. Daca ar fi sa fac doar pentru tabelul acesta as scrie
    DBCC DBREINDEX([campRap.1_1],........) sau DBCC DBREINDEX("campRap.1_1",........)


    Încearcă DBCC DBREINDEX("[dbo].[campRap.1_1]",........)
  •  11-30-2010, 4:15 PM 8532 in reply to 8531

    Re: Tabela cu "." in nume

    A mers! Multumesc!
View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems