我有以下查询:
DECLARE @OutProduct TABLE
(
ProductID INT,
BulkProductId INT
)
INSERT INTO dbo.Products
( EanCode ,
ChangedDateTime ,
ChangedById ,
Deleted
)
OUTPUT INSERTED.ID, BulkProducts.Id INTO @OutProduct (ProductID, BulkProductId)
SELECT EanCode ,
GETDATE(),
GETDATE(),
0
FROM dbo.BulkProducts
WHERE ProductId is NULL
假设Products.Id
&BulkProducts.Id
为自动递增标识列:
我想要达到的目标:
@OutProduct
临时表包含由刚刚插入Products.Id
的行和中的ID组成的元组BulkProducts
。
我偶然发现的内容:BulkProducts.Id
不能在该OUTPUT INSERTED.ID, BulkProducts.Id INTO
语句中使用,因为它不是有效的语法。
我该如何解决?
编辑:我正在使用SQL Server 2012。
您可能要探索MERGE
:
MERGE INTO dbo.Products
USING dbo.BulkProducts AS src
ON 1 = 0 -- Never match
WHEN NOT MATCHED THEN
INSERT(EanCode, ChangedDateTime, ChangedById, Deleted)
VALUES(src.EanCode, GETDATE(), GETDATE(), 0)
OUTPUT
inserted.Id,
src.Id
INTO @OutProduct;
参考:
OUTPUT博士或:我如何学会不再担心和爱合并,作者亚当·麦克汉尼(Adam
Machanic)
问题内容: 将尽可能多的字节从ByteBuffer 放入另一个ByteBuffer 的最有效方法是什么(以及知道传输了多少字节)?我正在尝试,但似乎要抛出BufferOverflowException,当我需要它们时,我现在无法从Sun获取Javadocs(网络问题)。> :( argh。 编辑:darnit,如果bbuf_src是ReadOnly缓冲区,则@Richard 的方法(使用来自bac
JAVA: 编写一个类,其中构造函数接受一个String对象作为其参数。该类应该有一个方法返回字符串中元音的数量,另一个方法返回字符串中辅音的数量。(空格既不计元音也不计辅音,应该忽略。) 在执行以下步骤的程序中演示该类: 要求用户输入字符串 程序显示以下菜单: a、 计算字符串中元音的数量。 b、 数一数字符串中的辅音数 c、 数一数字符串中的元音和辅音 d、 输入另一个字符串 e、 退出程序
问题内容: 我以这种方式使用了两个程序: c_program使用以下命令打印内容,而python_program.py使用以下命令读取内容 我想使python_program.py在打印时立即处理c_program的输出,以便它可以打印自己的当前输出。不幸的是python_program.py仅在c_program结束后才获得其输入。 我该如何解决? 问题答案: 只需将stdout设置为在C程序的
问题内容: 我想在我的Java程序中读取c-Application的输出流。 iremoted (可在此处获得:http : _//osxbook.com/software/iremoted/download/iremoted.c_ )是一个C应用程序,如果按下了Apple Remote遥控器上的按钮,它将显示诸如“ 0x19按下”的单独行。如果我启动改头换面的程序,那么一切都会很好,每当我按下一
下面是我的场景。我的工作是处理大量的csv数据,并使用Avro将其写入按日期划分的文件中。我得到了一个小文件,我想用它来更新这些文件中的一些附加条目,第二个作业我可以在需要时运行,而不是再次重新处理整个数据集。 这个想法是这样的: job1:处理大量的csv数据,将其写入压缩的Avro文件中,并按输入日期拆分为文件。源数据不按日期划分,因此此作业将做到这一点。 job2(在Job1运行之间根据需要
我在编程一个订单提交页面时遇到了一个相当大的问题,该页面的目的是提交一个订单的争议--提供两个字段被填写,但只有当一个字段少于另一个字段时。 基本上,一个是下拉,另一个是争端框,查询如下: 如果DispotestExtBox=“”而下拉框=“请选择...” 一切正常-提交按钮已启用 如果DisportestExtBox!=“”而下拉框=“请选择...” 错误(反之亦然,因此如果填充了Dispone