Я хочу сделать Kode_Barang
7 символов с первым символом Must «B» и оставшийся символ должен быть номер [1-9]SQL сообщение сервера 547
У меня есть создать запрос для Kode_Barang так же, как это:
Kode_Barang CHAR(7) PRIMARY KEY CHECK(LEN(Kode_Barang)=7 AND LEFT(Kode_Barang,1)='B' AND SUBSTRING(Kode_Barang,2,6)LIKE '[0-9]')
Но после того, как я ввожу некоторые значения, как это:
INSERT INTO Barang (Kode_Barang, Nama_Barang, Satuan, Harga, Stock)
VALUES('B000001', 'Mie Goreng', 'Biji', 2500, 56)
Есть ошибка произошла на Kode_Barang
.
Есть ли что-то не так? Пожалуйста, я новичок в SQL-запросе с ограничением проверки.
Примечание для другой ссылки:
Nama_Barang VARCHAR(25) UNIQUE NOT NULL,
Satuan VARCHAR (10) CHECK(Satuan = 'Buah' OR Satuan = 'Biji' OR Satuan = 'CM' OR Satuan = 'KG' OR Satuan = 'DUS' OR Satuan = 'Lusin'),
Harga MONEY NOT NULL CHECK(Harga != 0)
Stock INT NOT NULL CHECK(Stock > -1)
Благодаря
Я пробовал с '% [^ 0-9]%', но результат все тот же
я получаю ссылку как это один How can I use LEFT & RIGHT Functions in SQL to get last 3 characters?
это мой тип данных CHAR
не VARCHAR
.
И я изменить код так:
Kode_Barang CHAR(7) PRIMARY KEY
CHECK(LEN(Kode_Barang) = 7
AND SUBSTRING(CAST(Kode_Barang AS VARCHAR(7)), 1, 1) = 'B'
AND SUBSTRING(CAST(Kode_Barang AS VARCHAR(7)), 2, 6) LIKE '%[^0-9]%'),
но все тот же
Ошибка:
Msg 547, Level 16, State 0, Line 44
The INSERT statement conflicted with the CHECK constraint "CK__Barang__Kode_Bar__5441852A". The conflict occurred in database "Studi_Kasus_Kelompok", table "dbo.Barang", column 'Kode_Barang'.
Благодаря
Обратите внимание, что полезно включить полный текст любых ошибок, которые вы получаете в вопросе. –