Merge を使用するようにストアド プロシージャを変更しました。エントリが存在しない場合はエントリを挿入し、存在する場合はエントリを更新できます。
次のスクリプトを実行した後、テーブルを表示できます。マージ テーブルを削除するか、終了する必要がありますか?
select top 1000 クエリを実行するとハングします。
以下の SQL にこのエラーの原因となるものはありますか?
ALTER PROCEDURE [Suppliers].[ProductPropertyInsert]
@ProductId int
,@PropertyId int
,@PropertyValue nvarchar(50)
AS
BEGIN
SET NOCOUNT ON;
MERGE Suppliers.ProductProperties AS target
USING (SELECT @ProductId, @PropertyId) AS source (ProdId, PropId)
ON (target.ProductId = source.ProdId)
WHEN MATCHED THEN
UPDATE SET PropertyValue = @PropertyValue
WHEN NOT MATCHED THEN
INSERT (ProductId, PropertyId, PropertyValue)
VALUES (@ProductId, @PropertyId, @PropertyValue);
INSERT INTO Suppliers.ProductProperties (ProductId, PropertyId, PropertyValue)
VALUES(@ProductId, @PropertyId, @PropertyValue)
END