【问题标题】:Alter SQL Server Column in PDO更改 PDO 中的 SQL Server 列
【发布时间】:2011-06-20 06:49:46
【问题描述】:

我正在尝试在 SQL Server 中创建现有的 ID 列 数据库 AUTO_INCREMENT。我无权访问 GUI。

我正在尝试这个查询。

$stmt = $this->conn()->prepare('ALTER TABLE myTable ALTER COLUMN ID int NOT NULL auto_increment');
if($stmt->execute()){

}else{
    echo "<pre>";
    print_r($stmt->errorInfo());
    echo "</pre>";
}

这会产生以下错误[2] =&gt; Incorrect syntax near 'auto_increment'. [20018] (severity 5) [(null)]

感谢您的帮助。

【问题讨论】:

  • 我也试过“ALTER TABLE myTable CHANGE ID ID INT NOT NULL AUTO_INCREMENT”,但不喜欢CHANGE

标签: mysql sql-server pdo


【解决方案1】:

那么该代码肯定无法在 SQL Server 上运行,因为您无法在创建表后更改表以向字段添加标识功能。

即使可以,它也不起作用,因为 Identity 是您在 SQL Server 上使用的,没有自动增量。

您需要将标识添加为单独的列,或者执行 SSMS 的操作并使用标识创建一个新表,移动数据,然后删除旧表并重命名新表。

我不能说如何在 mysql 中做到这一点。

顺便说一句,ID 是一个可怕的 PK 字段名称。请使用表名ID。您将避免大量意外的错误连接,并使报告变得更加容易。

【讨论】:

  • 感谢您的意见,似乎使用 SQL Server 有点麻烦。
  • @mike ,对于某些事情(包括这个)是的,对于其他事情,不是。大多数情况下,它只是习惯了与你所知道的其他东西不同的东西。
猜你喜欢
  • 2021-02-18
  • 1970-01-01
  • 2012-04-25
  • 1970-01-01
  • 2010-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多