午後の皆さん、
ユーザーがクリックするとデータをテーブルに挿入するボタンがWebページにあります。このボタンにはメッセージ ボックスが割り当てられており、レコードが保存されたことをユーザーに知らせ、ユーザーをホームページにリダイレクトします。これは現在の状態で完全に正常に動作します。
私の問題は、ユーザーがこのボタンがあるページに戻ってデータを再度挿入するのを止める解決策を見つけたいということです。データベース テーブルに重複するレコードが存在することを回避する必要があります。
インターネットで読んだことから、ストアドプロシージャ内で「IF EXISTS」関数を使用する必要があると推測しています。ストアド プロシージャにある現在のコードでこれがどのように機能するかは 100% わかりません。これらのレコードが利用可能であることを確認したいだけで、そうでない場合は追加するか、既に存在する場合は追加しないでください。
インターネットで読んだ記事の量などに少し混乱していると思います。
これが私の現在のストアドプロシージャです:
ALTER PROCEDURE [dbo].[GasNominationsRawData_Insert]
AS SET NOCOUNT ON;
INSERT INTO dbo.GasRawData (timestamp,TagName,Value)
SELECT timestamp AS Interval, Left(Right(TagName,Len(TagName)-5),Len(TagName)-10) As TagName,
CONVERT(decimal(10, 2), ROUND(value, 2)) As Value
FROM
OPENQUERY(IHISTORIAN,'
SET starttime =''yesterday +4h'', endtime =''today +6h''
SELECT timestamp, tagname, value
FROM ihRawData
WHERE tagname = "UMIS.99FC9051.F_CV"
OR tagname = "UMIS.99F851C.F_CV"
OR tagname = "UMIS.35GTGAS.F_CV"
OR tagname = "UMIS.99XXG546.F_CV"
AND timestamp BETWEEN ''timestamp'' and ''timestamp''
AND SamplingMode =Calculated
AND CalculationMode =Average
AND IntervalMilliseconds =1h
ORDER BY tagname, timestamp
')
どんな助けや提案も大歓迎です。
よろしくベティ。