数据库
首页 > 数据库> > MSSQL PHP无法删除行

MSSQL PHP无法删除行

作者:互联网

首先,对不起我的英语.
我试图删除/向MSSQL表插入一些行,但是我没有收到任何错误,但它只是行不通.但是,当我执行SELECT语句时,它也可以正常工作.

$dbhandle = mssql_connect("SERVERNAME", "username", "password") or die("Couldn't connect to SQL Server on $myServer");
$selected = mssql_select_db("myDB", $dbhandle) or die("Couldn't open database $myDB");
mssql_query("DELETE dbo.import");

服务器SQL INSTANCE安装在我的本地计算机上,我是该SQL Server的管理员,但Web服务器在另一台PC上.
我创建了用户,并分配了角色db_owner
当我在另一个SQL Server上尝试相同的查询时,它可以工作.

我也尝试过:

$dbhandle = mssql_connect("SERVERNAME", "username", "password") or die("Couldn't connect to SQL Server on $myServer");
$selected = mssql_select_db("myDB", $dbhandle) or die("Couldn't open database $myDB");
$result = mssql_query("DELETE dbo.import; SELECT * FROM dbo.import;");
$sqlRows = array();
while($row = mssql_fetch_array($result))
{
    $sqlRows[] = $row;
}
echo sizeof($sqlRows);

和回显返回0,但是当我从SSMS检查时,记录仍然存在.

 DELETE SCHEMA.TABLE; SELECT * FROM SCHEMA.TABLE;

返回0行.然后我再试一次

SELECT * FROM dbo.import;

返回26行.

解决方法:

编辑2

解决方案是未提交的事务.看评论…

编辑

我的回答是不对的……我必须承认,我从来没有在没有FROM的情况下使用DELETE,但这显然是有效的:

create table #tbl(id int);
insert into #tbl values(1),(2);
select * from #tbl;
delete #tbl;
select * from #tbl;
drop table #tbl;

由于评论,我把答案留在那里.

标签:rows,php,sql-server,tsql
来源: https://codeday.me/bug/20191118/2031973.html