2 つのテーブルがあるとします。
T_Customer (p_customer_id, name, prename, country, age)
と
T_SomeInfo (f_customer_id, somebit, otherbit)
今、影響を受けた行に属する1 つの randomsomebit
とOUTPUT
updatedを更新したいと思います。T_Customer
f_customer_id
Atm私は次の声明を出しました:
UPDATE randombit SET randombit.somebit= 1
OUTPUT inserted.f_customer_id
FROM
(
SELECT TOP 1 * FROM T_SomeInfo
WHERE somebit= 0 AND otherbit = 0
ORDER BY NEWID()
) AS randombit
だから私f_customer_id
は私の更新された行の。しかし、別のテーブルから値を出力する有効なステートメントを作成できません。これは、私が試みたが成功しなかったステートメントです。
UPDATE randombit SET randombit.somebit= 1
OUTPUT customer.*
FROM T_Customer AS customer
WHERE customer.f_customer_id = inserted.f_customer_id
FROM
(
SELECT TOP 1 * FROM T_SomeInfo
WHERE somebit= 0 AND otherbit = 0
ORDER BY NEWID()
) AS randombit
1 つのステートメントに(INNER JOIN
またはを使用して) 更新および出力するソリューションはありますか?SELECT
例として編集: 2 人の顧客がいます:
T_Customer (1, "Smith", "John", "country", 10)
T_Customer (2, "John", "William", "country2", 20)
実はアップデート
UPDATE randombit SET randombit.somebit= 1
OUTPUT inserted.f_customer_id
FROM
(
SELECT TOP 1 * FROM T_SomeInfo
WHERE somebit= 0 AND otherbit = 0
ORDER BY NEWID()
) AS randombit
出力します(彼がランダムな勝者の場合):
1
でも見たい
1、「スミス」、「ジョン」、「国」、10