我有以下代码:
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'附近的语法不正确。
如何创建仅包含数字的表名?
答案 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中,不允许以数字开头的表名。您可以使用字母开始表的名称,然后可以使用数字。注意动态创建表是您需要处理的标志你的数据库设计。