質問編集履歴

6

編集

2021/10/20 02:07

投稿

Chandler_Bing
Chandler_Bing

スコア673

test CHANGED
File without changes
test CHANGED
@@ -192,10 +192,62 @@
192
192
 
193
193
  ```ここに言語を入力
194
194
 
195
+ --テーブル定義(table_1、tqble_2、wk_table_1)
196
+
197
+ USE [XXXXXX]
198
+
199
+ GO
200
+
201
+
202
+
203
+ /****** Object: Table [dbo].[table_1] Script Date: 2021/10/19 16:12:37 ******/
204
+
205
+ SET ANSI_NULLS ON
206
+
207
+ GO
208
+
209
+
210
+
211
+ SET QUOTED_IDENTIFIER ON
212
+
213
+ GO
214
+
215
+
216
+
217
+ CREATE TABLE [dbo].[table_1](
218
+
219
+ [A] [varchar](50) NOT NULL,
220
+
221
+ [B] [int] NULL,
222
+
223
+ CONSTRAINT [PK_table_1] PRIMARY KEY CLUSTERED
224
+
225
+ (
226
+
227
+ [A] ASC
228
+
229
+ )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
230
+
231
+ ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
232
+
233
+ GO
234
+
235
+
236
+
237
+ ALTER TABLE [dbo].[table_1] ADD CONSTRAINT [DF_table_1_B] DEFAULT (0) FOR [B]
238
+
239
+ GO
240
+
241
+
242
+
243
+
244
+
195
245
  --テストデータ
196
246
 
197
247
  insert into dbo.wk_table_1
198
248
 
199
249
  values ('00001', 1); --A(主キー), B
200
250
 
251
+ values ('00002', 2); --A(主キー), B
252
+
201
253
  ```

5

編集

2021/10/20 02:07

投稿

Chandler_Bing
Chandler_Bing

スコア673

test CHANGED
File without changes
test CHANGED
@@ -187,3 +187,15 @@
187
187
  select * from [dbo].[wk_table_1]; --トリガー発火のためレコードを挿入
188
188
 
189
189
  ```
190
+
191
+
192
+
193
+ ```ここに言語を入力
194
+
195
+ --テストデータ
196
+
197
+ insert into dbo.wk_table_1
198
+
199
+ values ('00001', 1); --A(主キー), B
200
+
201
+ ```

4

編集

2021/10/20 01:37

投稿

Chandler_Bing
Chandler_Bing

スコア673

test CHANGED
File without changes
test CHANGED
@@ -131,3 +131,59 @@
131
131
 
132
132
 
133
133
  どうかご教授のほどよろしくお願いします。
134
+
135
+
136
+
137
+ ```SQL
138
+
139
+ --回答を参考にソースを修正
140
+
141
+ CREATE TRIGGER trTest ON table_1
142
+
143
+ AFTER INSERT, UPDATE
144
+
145
+
146
+
147
+ AS
148
+
149
+ BEGIN
150
+
151
+
152
+
153
+ --トリガ内で処理された行数を示すメッセージが結果セットの一部として返されないようにします。
154
+
155
+ SET NOCOUNT ON;
156
+
157
+
158
+
159
+ UPDATE table_2
160
+
161
+ SET B = (SELECT B
162
+
163
+ FROM inserted
164
+
165
+ WHERE table_2.A
166
+
167
+ = inserted.A)
168
+
169
+ WHERE table_2.A IN
170
+
171
+ (SELECT A FROM inserted);
172
+
173
+
174
+
175
+ END
176
+
177
+
178
+
179
+
180
+
181
+ delete from [dbo].[table_1]; --全削除
182
+
183
+
184
+
185
+ insert into [dbo].[table_1]
186
+
187
+ select * from [dbo].[wk_table_1]; --トリガー発火のためレコードを挿入
188
+
189
+ ```

3

編集

2021/10/20 00:29

投稿

Chandler_Bing
Chandler_Bing

スコア673

test CHANGED
@@ -1 +1 @@
1
- SQL Server トリガー
1
+ SQL Server トリガーの複数行更新(挿入)
test CHANGED
File without changes

2

編集

2021/10/19 14:44

投稿

Chandler_Bing
Chandler_Bing

スコア673

test CHANGED
File without changes
test CHANGED
@@ -70,8 +70,6 @@
70
70
 
71
71
  ELSE
72
72
 
73
- PRINT 'table_2へインサート'
74
-
75
73
  BEGIN
76
74
 
77
75
  --table_2へインサート

1

編集

2021/10/19 14:43

投稿

Chandler_Bing
Chandler_Bing

スコア673

test CHANGED
File without changes
test CHANGED
@@ -120,7 +120,7 @@
120
120
 
121
121
 
122
122
 
123
- 現在以下二つの問題があります。
123
+ 現在以の問題があります。
124
124
 
125
125
 
126
126
 
@@ -132,16 +132,4 @@
132
132
 
133
133
 
134
134
 
135
-
136
-
137
- ★問題2★
138
-
139
- PRINT @VarA以降が処理されてません。
140
-
141
- table_1にレコードがない状態でtable_1に値をインサートするとELSEに来るはずですが、IFにすらきてません。
142
-
143
- 書き方が悪いでしょうか?→コンパイルには成功してます。
144
-
145
-
146
-
147
135
  どうかご教授のほどよろしくお願いします。