我的 php 类创建以下命令:
INSERT INTO contacts (firstName, lastName) VALUES ('jon', 'snow')
DECLARE @IDcontacts VARCHAR(200)
SET @IDcontacts = @@IDENTITY;
INSERT INTO emailAddresses (ownerId, emailAddress) VALUES (@IDcontacts, 'jon@thewall.com')
INSERT INTO emailAddresses (ownerId, emailAddress) VALUES (@IDcontacts, 'jon@winterfell.com')
INSERT INTO emailAddresses (ownerId, emailAddress) VALUES (@IDcontacts, 'thebastard@winterfell.com')
我创建连接,使用 开始事务,并使用 执行批处理sqlsrv_query()
。
执行批处理后,sqlsrv_errors()
给了我四个错误:[Microsoft][SQL Native Client][SQL Server]Must declare the scalar variable "@IDcontacts".
但是,如果我在 SQL Server Management Studio 中使用完全相同的批处理字符串,它可以正常工作,并且所有四个记录都使用第一次插入的正确标识值插入。
我正在使用 SQL Server Express 2005、php 版本 5.4.3 和最新的 sqlsrv 驱动程序。我无法在 technet 或 ms 论坛上找到任何关于此的信息,我们将不胜感激。