我的一个专栏叫。我不能改名字,因为不是我做的。 我是否允许做一些像SELECT from TableName或有一个特殊的语法,以避免SQL Server混淆?
当前回答
当你这样做的时候,把它别名为其他东西(或者更好的是,使用一个视图或SP并弃用旧的直接访问方法)。
SELECT [from] AS TransferFrom -- Or something else more suitable
FROM TableName
其他回答
我也遇到过这个问题。 解决方案是在查询中像这样放入[Column_Name]。
string query= "Select [Name],[Email] from Person";
所以它会工作得很好。
从这里的答案和我自己的经验来看。如果您计划实现可移植,唯一可接受的答案是不要对表、列或其他名称使用SQL关键字。
所有这些答案都适用于各种数据库,但显然有很多不支持ANSI解决方案。
如果您正在使用SQL Server,您可以简单地将方括号括在列名或表名周围。
select [select]
from [table]
在MySQL中,除了使用反引号('),您还可以使用UI来更改列名。右键单击表>修改表>编辑包含sql关键字>提交的列名。
select [from] from <table>
需要注意的是,上述方法在MySQL中不起作用
你可以像这样把你的列名放在括号里:
Select [from] from < ur_tablename>
Or
放入一个临时表,然后随意使用。 例子:
Declare @temp_table table(temp_from varchar(max))
Insert into @temp_table
Select * from your_tablename
这里我只是假设your_tablename只包含一列(即from)。
推荐文章
- 如何在Ruby On Rails中使用NuoDB手动执行SQL命令
- 查询JSON类型内的数组元素
- 确定记录是否存在的最快方法
- 获得PostgreSQL数据库中当前连接数的正确查询
- 在SQL选择语句Order By 1的目的是什么?
- 从现有模式生成表关系图(SQL Server)
- 我如何循环通过一组记录在SQL Server?
- 数据库和模式的区别
- 如何在SQL Server中一次更改多个列
- 如何从命令行通过mysql运行一个查询?
- 外键约束可能导致循环或多条级联路径?
- 使用LIMIT/OFFSET运行查询,还可以获得总行数
- 当恢复sql时,psql无效命令\N
- 货币应该使用哪种数据类型?
- 如何选择每一行的列值不是独特的