Don*_*nes 5 sql-server error-handling nvarchar
我有一个我为我们的生产线创建的脚本,用户在执行之前将一些变量输入到脚本中.问题是变量是NVARCHAR(9),如果用户输入10个字符,那么最后一个字符被切断(正如预期的那样)我想知道的是如果输入一个值,我怎么能让SQL抛出一个错误太长?这个问题源于用户指责他们的输入.例:
Valid input -
DECLARE @ClientCode NVARCHAR(9)
SET @ClientCode = N'ABCDEFGHI'
SELECT @ClientCode
Results
ABCDEFGHI
Run Code Online (Sandbox Code Playgroud)
输入无效 -
DECLARE @ClientCode NVARCHAR(9)
SET @ClientCode = 'ABCDDEFGHI'
SELECT @ClientCode
Results
ABCDDEFGH
Run Code Online (Sandbox Code Playgroud)
我希望的是一个SSMS会引发错误的设置.我希望避免的是 -
DECLARE @ClientCode NVARCHAR(50)
...
IF LEN(@ClientCode) > 9
RAISERROR('Too long dummy.',16,1)
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助
请参阅SQL Server 在存储过程中静默截断 varchar - SQL Server 无法设置为自动引发存储过程内插入的截断错误,因此您必须自己执行检查。您可以在存储过程中执行此操作(您列为“希望避免”的代码),也可以在客户端应用程序中预先进行验证。
| 归档时间: |
|
| 查看次数: |
470 次 |
| 最近记录: |