我应该避免在SQL Server中使用表名的特殊字符吗?

时间:2017-04-26 18:25:28

标签: sql sql-server database

我想创建一个SQL Server数据库,该数据库将容纳数千个表,这些表的名称将反映股票代码名称。例如,&00; 0099-OL.HK'是公司的股票代码。我创建表格的许多股票都有这样的特殊字符。

我已经读过表名中的特殊字符应该避免,但我仍然不知道为什么。如果用括号括起名称,SQL Server允许您在表名中使用特殊字符,例如,' CREATE TABLE [0099-OL.HK] ...'。

我应该使用自动收报机名称作为他们的表名,还是应该避免使用他们的特殊字符?

3 个答案:

答案 0 :(得分:1)

这将导致问题无止境。 SQL Server允许带空格和特殊字符的名称的原因是人们从名称中允许这些字符的数据库迁移。如果你必须这样做,用_替换所有特殊字符,如:TN0099_OL_HK(TN代表股票名称),这样用户可以不使用括号键入sql。

答案 1 :(得分:1)

这样做是不好的做法,因为并非每个库都能正确处理表名。

答案 2 :(得分:1)

避免在数据库名称,表名称和列名称中使用特殊字符,空格和前导数字。

有关常规标识符的完整规则:Database Identifiers - docs