ユーザーが実行前にスクリプトにいくつかの変数を入力する生産ライン用に作成したスクリプトがあります。問題は、変数が NVARCHAR(9) であり、ユーザーが 10 文字の文字列を入力すると、(予想どおり) 最後の文字が切り捨てられることです。長すぎます?この問題は、ユーザーがファット フィンガーで入力することに起因します。例:
Valid input -
DECLARE @ClientCode NVARCHAR(9)
SET @ClientCode = N'ABCDEFGHI'
SELECT @ClientCode
Results
ABCDEFGHI
無効入力 -
DECLARE @ClientCode NVARCHAR(9)
SET @ClientCode = 'ABCDDEFGHI'
SELECT @ClientCode
Results
ABCDDEFGH
私が望んでいるのは、SSMS がエラーを発生させる設定です。私が避けたいのは、次のようなものです-
DECLARE @ClientCode NVARCHAR(50)
...
IF LEN(@ClientCode) > 9
RAISERROR('Too long dummy.',16,1)
助けてくれてありがとう