MS SQL 2005 自动递增错误
MS SQL 2005 Auto Increment Error
因此,我尝试在我的数据库 'Test'、
中创建一个 table
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 中的插入语句,没关系 $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
语句中指定它。
当您想使用 table
的自动递增功能时,也不要 SET IDENTITY_INSERT
到 OFF
SET IDENTITY_INSERT
允许将显式值插入到 table.
的标识列中
您的完整查询
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";
}}
因此,我尝试在我的数据库 'Test'、
中创建一个 tableCREATE TABLE TestTbl(
id INT IDENTITY(1,1),
Agent_id VARCHAR(255) NOT NULL
)
创建后,我尝试通过php为代理添加2个值,但结果是这样的:
id | Agent_id
0 8080
0 8081
它不会自动递增,即使我将'id'设置为主键,仍然出现问题,有人知道如何解决这个问题吗?
这是我在 php 中的插入语句,没关系 $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
语句中指定它。
当您想使用 table
的自动递增功能时,也不要SET IDENTITY_INSERT
到 OFF
SET IDENTITY_INSERT
允许将显式值插入到 table.
您的完整查询
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";
}}