none
Erro a criar tabela RRS feed

  • Pergunta

  • Boa tarde,

    Tenho um webapplication que está feito em c# com base de dados em sqlserver.

    No sqlserver consigo criar tabelas com nome 00_teste. Através da aplicação dá-me erro a criar a tabela.

    Será que alguém me pode ajudar?

    Élio

    sexta-feira, 1 de junho de 2012 15:09

Respostas

  • Philipe,

    Por padrão não de objetos não podem começar com números, isso é uma regra que existe desde os primórdios de lógica de programação, estrutura de dados, engenharia de softwares e orientação a objetos.

    Isso também se aplica a banco de dados.

    O que você poderia fazer é criar a sua table, passando o colchetes, veja o exemplo:

    Create Table [00_teste]
     (codigo int)
    
    Select * from [00_teste] 

    Mas eu não vejo isso como uma boa prática, ao contrário, isso vai totalmente contra as regras de nomeação e referência de objetos.

    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    sexta-feira, 1 de junho de 2012 16:40

Todas as Respostas

  • Elio,

    Qual é a mensagem de erro?


    []'s
    Philipe Souza
    E-mail: Philipe.s.souza@hotmail.com

    sexta-feira, 1 de junho de 2012 15:49
  • O erro é este:

    System.Exception: System.Data.SqlClient.SqlException: Incorrect syntax near '00'. em System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) em System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) em System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) em System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async) em System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) em System.Data.SqlClient.SqlCommand.ExecuteNonQuery() em SQLServer.SQL.Write() em D:\Projectos\ProjectoBesafe\arquivosgest\arquivosgest\App_Code\SQL.cs:line 59 em SQLServer.SQL.Write() em D:\Projectos\ProjectoBesafe\arquivosgest\arquivosgest\App_Code\SQL.cs:line 67 em arquivosgest.pages.jpesquisa.Button1_Click(Object sender, EventArgs e) em D:\Projectos\ProjectoBesafe\arquivosgest\arquivosgest\pages\gpesquisas.aspx.cs:line 77 

    sexta-feira, 1 de junho de 2012 16:12
  • Philipe,

    Por padrão não de objetos não podem começar com números, isso é uma regra que existe desde os primórdios de lógica de programação, estrutura de dados, engenharia de softwares e orientação a objetos.

    Isso também se aplica a banco de dados.

    O que você poderia fazer é criar a sua table, passando o colchetes, veja o exemplo:

    Create Table [00_teste]
     (codigo int)
    
    Select * from [00_teste] 

    Mas eu não vejo isso como uma boa prática, ao contrário, isso vai totalmente contra as regras de nomeação e referência de objetos.

    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    sexta-feira, 1 de junho de 2012 16:40