【发布时间】:2020-09-03 04:13:49
【问题描述】:
我在 SQL Server 数据库中有以下两个表:
发票表
ID | INVOICE_NO |
--------------------
1 | 1000000001 |
2 | 1000000002 |
3 | 1000000003 |
invoice_details 表
ID | INVOICE_ID | DESCRIPTION | AMOUNT |
-------------------------------------------
1 | 1 | Electricity | 3500.00|
2 | 1 | Telephone | 750.00|
3 | 2 | Car Service | 6500.00|
4 | 2 | Other | 1500.00|
我想使用 PHP 脚本将上述详细信息导出到 SQL Server 存储过程。发送时,我想从invoices 表中选择第一行,并从invoice_details 表中选择相关的两行(明智的做法)。所以invoice_details必须在一个数组之类的里面。
我的问题是;
- 如何制作 SQL Server 存储过程来完成这项工作?
- 如何发送这些详细信息(我可以使用数组将发票详细信息与发票数据一起发送)吗?
如果有人对此有任何想法,请指导。
【问题讨论】:
-
谷歌表值参数
-
@DaleK 无法从 php 发送 TVP。
-
这并不优雅,但是...您可以将 invoice_details 数据编码为 XML 并将其作为
@details xml参数提供给存储过程,将其切碎在 proc 中以插入到 invoice_details 表中。在较新版本的 SQL Server 上,您还可以编码为 JSON 并以@details nvarchar(max)发送。事实上,如果你遇到了麻烦,你可以将整个批次作为 XML 或 JSON 发送。 -
@LahiruTM JSON 在这里是一个不错的选择。您使用哪个驱动程序连接到 SQL Server,SQL Server 版本是多少?
-
@Zhorov SQL Server 2008,SQL_SRV
标签: php sql-server sql-server-2008 sqlsrv