table
のフィールドをチェックして、フィールドに数字CHAR(X)
のみが含まれていることを確認するにはどうすればよいですか? 私が考えることができるものはすべて非常に不格好です。not NULL
error
質問する
99 次
2 に答える
0
TRY_CONVERT
構文がnullのようにチェックするデータ検証に使用してみてください
SELECT TRY_CONVERT(int,'21245')
以下のようなものは、正しくないフィールドの一致に役立つ場合があります
SELECT * FROM Table_1 where LTRIM(RTRIM(fieldname)) like '%[^0-9]%'
于 2012-08-16T20:29:36.297 に答える
0
結果セット
insert into CheckConstraint(Digit)values(1) //Failed
insert into CheckConstraint(Digit)values('ws') //Failed
insert into CheckConstraint(Digit)values(12345) //Passed
Nullable値を避けるために、テーブルはこのようにする必要があります
CREATE TABLE CheckConstraint
(
Digit Char(5) Not Null
)
関数を作成する
Create FUNCTION Validations() RETURNS INT AS BEGIN
DECLARE @ret INT = 0 ;
SELECT @ret = IsNull(COUNT(Digit), 0) FROM CheckConstraint
WHERE Digit not like '[0-9]%'
RETURN IsNUll(@ret, 0);
END;
数字以外の文字を避けるための制約
alter TABLE CheckConstraint
add CONSTRAINT CheckValidations CHECK ((dbo.Validations() = 0));
5 文字以下またはそれ以上を避けるための制約
ALTER TABLE [dbo].CheckConstraint
ADD CONSTRAINT [MinLengthConstraint] CHECK (DATALENGTH(Digit) = 5)
于 2012-08-16T20:43:41.607 に答える