SELECT * INTO 不完整查询子句

Posted

技术标签:

【中文标题】SELECT * INTO 不完整查询子句【英文标题】:SELECT * INTO Incomplete Query Clause 【发布时间】:2015-11-13 15:33:53 【问题描述】:

我似乎在我的 OleDbCommand 中做错了什么,但我不知道它是什么。我正在尝试在我的访问数据库中创建另一个表,该表与第一个表完全相同,但名称不同,方法是从一个表中复制所有内容并使用 SELECT INTO。我不知道为什么它不起作用。

        OleDbCommand copyAttendanceCommand = new OleDbCommand("SELECT * INTO '" + "Attendance " + DateTime.Now.Day + "/" + DateTime.Now.Month + "/" + DateTime.Now.Year + "' FROM Attendance",loginForm.connection);
        copyAttendanceCommand.ExecuteNonQuery();

我收到的错误消息是“查询中的语法错误。查询子句不完整”。有谁知道这是什么意思?

【问题讨论】:

语法错误意味着你的查询写错了... @messerbill:呵呵。而SELECT * INTO 是一个表创建查询。一点都没错。 【参考方案1】:

带有空格的表或字段名称不是用''围绕它们指定的,而是用方括号。

你的命令应该是:

"SELECT * INTO [Attendance " + DateTime.Now.Day + "/" + DateTime.Now.Month + "/"
  + DateTime.Now.Year + "] FROM Attendance"

【讨论】:

【参考方案2】:

您甚至可以格式化日期以使代码更具可读性:

string today = DateTime.Today.ToString("d'/'M'/'yyyy"); 
string sql ="SELECT * INTO [Attendance " + today + "] FROM Attendance";

OleDbCommand copyAttendanceCommand = new OleDbCommand(sql, loginForm.connection);
copyAttendanceCommand.ExecuteNonQuery();

【讨论】:

以上是关于SELECT * INTO 不完整查询子句的主要内容,如果未能解决你的问题,请参考以下文章

将过程参数传递给 SELECT INTO where 子句不起作用

INTO 子句不允许错误

Oracle PL/SQL SELECT INTO 子句认为它需要另一个 INTO

如何修复此 SELECT 语句中的错误 INTO 子句

错误 PLS-00428:此 SELECT 语句中应有一个 INTO 子句

select查询语句