簡體   English   中英

MS SQL 2005自動增量錯誤

[英]MS SQL 2005 Auto Increment Error

所以,我試圖在我的數據庫'Test'中創建一個表,

CREATE TABLE TestTbl(
id INT IDENTITY(1,1),
Agent_id VARCHAR(255) NOT NULL
)

在創建之后,我嘗試通過php為代理添加2個值,但結果如下:

id | Agent_id
0     8080
0     8081

它不會自動遞增,即使我將'id'設置為主鍵,仍然會出現問題,任何人都知道如何解決這個問題?

這是我在php中的insert語句,沒關系$conn ,因為它有效,它適用於我的sql連接

 if(isset($_POST['agentid'])){
    $agent = $_POST['agentid'];
    $query = "SELECT * FROM [Test].[dbo].[TestTbl] WHERE [Agent_id] = '$agent'";
    $result = sqlsrv_query($conn,$query);
      if(sqlsrv_has_rows($result) !=0){
    echo "ID EXISTS";
       }else{
    $sql = "SET INDENTITY_INSERT TestTbl ON
    INSERT INTO [Test].[dbo].[TestTbl]
    ([id],[Agent_id]) VALUES ('','$agent')
    SET IDENTITY_INSERT TestTbl OFF";
    echo "Added";
    }}

改變這一部分

INSERT INTO [Test].[dbo].[TestTbl]
    ([id],[Agent_id]) VALUES ('','$agent')

INSERT INTO [Test].[dbo].[TestTbl]
    ([Agent_id]) VALUES ('$agent')

當它自動遞增時,您不需要在INSERT語句中指定它。

如果要使用表的自動增量功能,也不要將SET IDENTITY_INSERTOFF

SET IDENTITY_INSERT允許將顯式值插入表的標識列。

您的完整查詢

 if(isset($_POST['agentid'])){
    $agent = $_POST['agentid'];
    $query = "SELECT * FROM [Test].[dbo].[TestTbl] WHERE [Agent_id] = '$agent'";
    $result = sqlsrv_query($conn,$query);
      if(sqlsrv_has_rows($result) !=0){
    echo "ID EXISTS";
       }else{
    $sql = "INSERT INTO [Test].[dbo].[TestTbl]
    ([Agent_id]) VALUES ('$agent')";
    echo "Added";
}}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM