【问题标题】:php - sql server : "set identity_insert on" not workingphp - sql server:“set identity_insert on”不起作用
【发布时间】:2013-09-05 13:43:24
【问题描述】:

我目前正在使用 sql server 数据库开发 php 应用程序。 我在 php 中使用 sqlsrv 驱动程序对我的数据库进行查询。

问题是我必须在具有身份规范的字段上进行插入。 我尝试使用指令“SET IDENTITY_INSERT tableName ON”,但它看起来不适用于 sqlsrv_query...

有人知道如何解决这个问题吗?

提前致谢。

【问题讨论】:

    标签: php sql-server insert identity sqlsrv


    【解决方案1】:

    你是自己批量调用command,然后执行insert的吗?

    在 SET IDENTITY_INSERT ON/OFF 上查看 MSDN,它用于在执行插入之前 GO 提交批处理。

    这是PHP SQLSVR的参考手册。

    过去在编写 VB 脚本或 C# 时,我会使用 query() 来返回结果集。客户端代码使用游标处理 data.strong 文本

    但是,这个语句应该通过 execute() 命令来执行。

    试试下面的。

    1 - 执行() - 身份开启
    2 - 执行() - 插入 (S)
    3 - 执行() - 身份关闭

    看看这是否能解决您的问题。

    【讨论】:

    • 我尝试使用和不使用 GO... 我的查询在 SQL Server Management Studio 中运行时有效,但在 php 中使用 sqlsrv_query 时无效
    • 它仍然不起作用...我收到一条错误消息,指出我没有对此表的权限,但没有“SET IDENTITY_INSERT...”,我的查询也能正常工作。我是否需要特定权限才能使用此命令?感谢您的帮助
    • 是的,您需要所有权限。您是偶然的 DBA 还是其他人?数据库角色 (db_owner) 肯定会允许您执行此操作。
    • 好的,我只需要 ALTER 许可,我以为我已经获得了...它在许可下工作正常,感谢您的帮助,并为浪费时间感到抱歉(我觉得很菜鸟.. .)
    • 没问题,回答范围广泛的问题肯定会扩展我的知识,让我看到各种商业实践。我很高兴你们都准备好了!
    猜你喜欢
    • 2014-08-19
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-13
    • 2011-06-15
    • 1970-01-01
    相关资源
    最近更新 更多