質問編集履歴

1

「試したこと」の書き方を変更。回答内容を追記

2019/10/28 02:11

投稿

ponpopo
ponpopo

スコア8

test CHANGED
File without changes
test CHANGED
@@ -114,11 +114,9 @@
114
114
 
115
115
  END
116
116
 
117
-
117
+ ```
118
118
 
119
-
119
+ ```SQL
120
-
121
-
122
120
 
123
121
  IF (SELECT Count(*) FROM inserted WHERE SID IS NULL) > 0
124
122
 
@@ -145,3 +143,31 @@
145
143
 
146
144
 
147
145
  ※トリガーの判定に行かない
146
+
147
+
148
+
149
+ ##追記:2019/10/28
150
+
151
+ 回答から:
152
+
153
+ [RAISERROR(Transact-SQL)](https://docs.microsoft.com/en-us/sql/t-sql/language-elements/raiserror-transact-sql?redirectedfrom=MSDN&view=sql-server-ver15)
154
+
155
+ [RAISERROR issue since migration to SQL Server 2012](https://stackoverflow.com/questions/21669227/raiserror-issue-since-migration-to-sql-server-2012)
156
+
157
+
158
+
159
+ (※ソースコードの変更点のコードを見やすく分けました)RAISERROR文は
160
+
161
+ RAISERROR( msg_str, severity ,state) の形が例文にもあるので引数の順番は大丈夫だと思うのですが
162
+
163
+ Serverityの値に細かい決まりがあった事と、例文ではTRY~CATCHの中で使っているようですので原文をどう書き直せばいいか考えてみます。
164
+
165
+
166
+
167
+ また、sys.messages カタログビューに一度登録して、RAISERROR ( msg_id ,severity ,state}のようにする方法があるようですが
168
+
169
+ こっちの方が意図した方法のような気がしました。こっちの方が書き直すのが難しそうですが…
170
+
171
+
172
+
173
+ THROW文は特にTRY~CATCHを使わなければいけないようですので、書いたことがないですが余裕ができたときに試せればと思います。