如何更改SQL Server中作为关键字的表的名称

时间:2015-04-03 06:18:22

标签: sql sql-server sql-server-2008

我使用procedure作为SQL Server中表的名称。我现在无法做任何事情并得到错误。

我不知道它是一个保留的关键字。

我该怎么办?

3 个答案:

答案 0 :(得分:3)

当您使用方括号括起来时,可以在SQL Server中为表和字段名称使用保留关键字。 所以

drop table [procedure];

应该解决问题。另一个选项是在对象资源管理器中找到表dbo.procedure,右键单击它,单击“删除”并选择“确定”。

答案 1 :(得分:1)

您可以在动态SQL中使用括号[]QUOTENAME()。但是使用RESERVED WORDS作为表,列名称是不好的做法。

答案 2 :(得分:0)

您应该将表Rename更改为反映其使用情况的非保留关键字。要使用类似的东西重命名表格。

EXEC sp_rename '[procedure]','MyTable','OBJECT'

您可以在静态SQL中使用[]继续使用(不推荐)现有名称 SELECT <ColumnName> FROM [Procedure]

或者使用QUOTENAME(),在Dynamic SQL的情况下需要手动添加表名。像这样的东西。

DECLARE @TableName NVARCHAR(10) = 'Procedure'
DECLARE @SQL NVARCHAR(500) = N'SELECT * FROM ' + QUOTENAME(@TableName)
EXEC sp_executesql @SQL

您可以找到保留字here的列表。