如何引用带引号的SQL列?含引号列引用失败求助
解决SQL保留字列名"current"的引用问题
你的问题出在两个地方:一是保留关键字列名的引用方式错误,二是查询语句拼接时缺少必要空格导致语法错误。
正确的解决步骤:
用方括号包裹保留字列名
SQL Server中,current是内置保留关键字,必须用**方括号[]**包裹才能被识别为列名,双引号或单引号都不符合默认的标识符规则。修复查询语句的拼接空格
你的原代码拼接后会生成SELECT"current"FROM myTable这类语法错误的SQL,必须在SELECT、列名、FROM之间添加空格。
修正后的代码示例:
string colName = "[current]"; // 注意添加SELECT后、FROM前的空格 string query = "SELECT " + colName + " FROM myTable"; SqlCommand cmd = new SqlCommand(query, Conn); SqlDataAdapter adpt = new SqlDataAdapter(cmd); DataTable table = new DataTable(); adpt.Fill(table);
补充说明为什么之前的写法无效:
- 直接写
current:会被SQL Server解析为关键字,而非列名 - 用双引号
"current":SQL Server默认不启用双引号作为标识符分隔符(需手动设置SET QUOTED_IDENTIFIER ON,但不依赖此配置更稳妥) - 用单引号
'current':单引号在SQL中用于包裹字符串常量,会被当成普通字符串而非列名
内容的提问来源于stack exchange,提问作者Alexander The Great
相关产品推荐
相关产品推荐

