2017-07-20 3 views
0

質問のタイトルに記載されている内容が発生するようなクエリ/スクリプトを作成するように求められました。アラート テーブルに記録しますトリガーを作成するよう求めてきたSQL Server - 製品の数量が1になるとアラートに記録されるトリガーを作成する

任意の製品のための手であなたの量がダウンして1

にあるときは、次を作成します。ここで求められているものです。

  1. アラートテーブルを作成するスクリプト。 (少なくとも日時スタンプ、アラートタイプ、アラートの説明が必要です)。

  2. 在庫を追跡する場所のトリガーを作成するためのスクリプト。だから、

、私は何をしますか?私はどこからでも私が自分でそれを理解できるかどうかを見てきたが、私は運がない。私はこれで何か助けを受けることができれば大いに感謝します。

+1

となっていますか質問してください。 1.警告表を作成します。2.トリガーを作成します。 – Squirrel

答えて

1

この回答はあいまいですが、その質問には多くの詳細は含まれていませんが、コンセプトは機能します。それが役に立てば幸い!

CREATE TABLE AlertTable(
ProductID int, 
ProductName varchar(255), 
AlertDate DateTime DEFAULT GETDATE(), 
AlertType varchar(50), 
AlertDescription varchar(255) 
); 

次に挿入テーブル内の1のStockOnHand値を持つテーブルに製品を挿入するために、あなたの在庫表にトリガーを作成し、次のように警告を保持するためのテーブルを作成します。 (誰かがテーブルを変更して、今は1アイテム残っています)

CREATE TRIGGER StockAlert 
ON StockTable 
AFTER UPDATE 
AS 
BEGIN 
INSERT INTO AlertTable 
SELECT ProductID, ProductName, 'Low Stock', 
'There is only 1 ' + ProductName + ' left' 
FROM inserted 
WHERE StockOnHand = 1 
END 
GO 
+0

最初の部分は機能しましたが、2番目の部分の挿入に問題があります.AlertTableはオブジェクトではないことを示しています。私は間違って何をしていますか? – ShreddedSaber

+0

こんにちはMichael、あなたのログインのデフォルトではないデータベースとスキーマがダウンしている可能性があります。テーブルを削除し、より修飾された名前で作成し直してください。つまり、CREATE TABLE DatabaseName.SchemaName.AlertTableです。その後、同じcreate trigger文を使用できますが、修飾名を参照するだけです。だからあなたのデータベースが会社と呼ばれ、あなたのスキーマがデフォルトのdboならば、あなたは 'CREATE TABLE Company.dbo.AlertTable'を使い、次にトリガで' CREATE TRIGGER StockAlert ON Company.dbo.StockTable'を使います。それ以上の問題について私に教えてください:)感謝...フィル – wrslphil

関連する問題