Tablename作为使用Asp.net的SQL Server中的数字

时间:2013-06-30 12:37:12

标签: asp.net sql sql-server tablename

我有以下代码:

SqlConnection connection = new SqlConnection(@"Data Source=MY-PC;Initial Catalog=master;Integrated Security=True");
connection.Open();
 using (SqlCommand command = new SqlCommand("CREATE TABLE Table1 (Weight INT, Name TEXT, Breed TEXT)", connection))
  {
     command.ExecuteNonQuery();
  }
 connection.Close();

使用此功能,我可以添加一个名为“Table1”的新表。但只要我将表名更改为仅数字,例如使用"CREATE TABLE 123456 (Weight INT, Name TEXT, Breed TEXT)"

我得到了

  

SQLException:'123456'附近的语法不正确。

如何创建仅包含数字的表名?

2 个答案:

答案 0 :(得分:1)

在SQL-Server中,表名不能以数字开头。请参阅Rules for Regular Identifiers

  

[标识符]的第一个字符必须是以下之一:

     
      
  • Unicode标准2.0定义的字母。字母的Unicode定义包括从a到z和从A到Z的拉丁字符,以及来自其他语言的字母字符。

  •   
  • 下划线(_),“at”符号(@)或数字符号(#)   标识符开头的某些符号在SQL Server中具有特殊含义。以“at”符号开头的标识符表示局部变量或参数。以数字符号开头的标识符表示临时表或过程。以双数字符号(##)开头的标识符表示全局临时对象。   某些Transact-SQL函数的名称以符号(@@)的double开头。为避免与这些功能混淆,建议您不要使用以@@开头的名称。

  •   

答案 1 :(得分:0)

在标准SQL中,不允许以数字开头的表名。您可以使用字母开始表的名称,然后可以使用数字。注意动态创建表是您需要处理的标志你的数据库设计。