A. sql如何限定欄位為數字和字母
如果你是用Frontpage做的話,你可以直接用對話框去設置。
方法:選中文本框——右鍵,表單域屬性——驗證有效性——選擇需要的數據類型。
它的結果是產生的一段JAVAScript代碼,在前台檢測輸入的數據。
B. 怎麼在sql 里對一個表的某一個欄位名 做一個「第一個字元為字母」進行約束 該怎麼寫
(ascii(upper([aaa])) > 64 and ascii(upper([aaa])) < 91)
企業管理器→所要操作的資料庫→所要操作的表→右鍵點該表→點設計表→右鍵點 設計表的窗口→點 check約束→新建→然後在裡面輸入上面的話
上邊的aaa是要約束的欄位名
上邊的那句的整體意思是:
upper 的意思是:小寫轉大寫
ascii 的意思是:求字元串的最左邊的字母的ascii碼
然後判斷這個碼是不是在 64和91 之間
也就是 A 和Z 之間
寫成語句就是:
alter table 表名
with nocheck
add constraint ck_aaa
check( (ascii(upper([aaa])) > 64 and ascii(upper([aaa])) < 91))
其中ck_aaa 是約束的名字,隨便起的,你想起什麼就起什麼
with nocheck 就是對現有的數據不進行檢查,只有新加入的數據才檢查
回答完畢。
幫助別人,自己得分,鞏固知識,何樂而不為!!
C. sql欄位約束只能使用字母 (a-z)(A-Z)數字(0-9) 和數點(.)怎麼寫
列名like '%[a-z]%' or 列名 like '%[A-Z]%' or 列名 like '%[0-9]%' or 列名 like '%.%'
D. sql中表中一列的值,怎麼弄成固定字母和數字組合
這個應該跟你的要求類似,你自己看一看~
CREATE FUNCTION 例十一_編號()
RETURNS varchar(7)
BEGIN
DECLARE @編號 varchar(7)
DECLARE @id int
SELECT TOP 1 @編號 = 編號
FROM tb_例十一
ORDER BY 編號 DESC
IF @@ROWCOUNT = 0
SET @編號 = 'TCP-001'
ELSE
BEGIN
SET @id = CAST(SUBSTRING(@編號,5,3) AS int) + 1
SET @編號 = 'TCP-' + REPLICATE('0',3-LEN(@id)) + CAST(@id AS varchar(3))
END
RETURN @編號
END
GO
CREATE TABLE tb_例十一
(
編號 varchar(7) DEFAULT dbo.例十一_編號(),
名稱 nvarchar(10)
)
GO
INSERT tb_例十一(名稱)
VALUES ('測試一')
INSERT tb_例十一(名稱)
VALUES ('測試二')
INSERT tb_例十一(名稱)
VALUES ('測試三')
GO
SELECT *
FROM tb_例十一
GO
E. 用sql 查詢,某一組中以字母開頭的元祖,字母不限定在某個上
select * from tablename where fieldname like '[a-Z]%'
請注意,'[a-Z]%'中a是小寫,Z是大寫
F. 怎樣在SQL里寫不知道長度字元串的約束 規定只能輸入英文字元
1> SELECT
2> PATINDEX('%come%go%', 'easy come, easy go, so easy!') A
3> go
A
-----------
6
(1 行受影響)
可以通過 PATINDEX(¡%[^a-zA-Z]%¡, 指定字元串) = 0 的方式,來創建 Check
約束,限制指定欄位,只允許存儲英文字母。
也就是
CREATE TABLE 表 (
欄位 varchar(20) ,
CHECK PATINDEX(¡%[^a-zA-Z]%¡, 欄位) = 0
);
G. SQL 2005 可視化操作中怎麼設置表中某一欄位的字元串取值只能包含字母s或m
這是check約束,你可以用可視化操作添加check約束,在表設計里;也可以直接用SQL命令:
altertable表名addconstraintMyCheck1check(列名1in('s','m'))
altertable表名addconstraintMyCheck2check(列名2in('a','b','c','d'))
H. sql添加約束以英文字母開頭
ALTER TABLE #temp WITH NOCHECK ADD
constraint ck_name check (name like '[a-z]%' or name like '[A-Z]%')
I. sql中如何實現只能輸入A-Z之間的字元
給分高點好不?
// 生成只能寫字母的欄位
Create Table TEST(ID Varchar(10) Check(ID not Like '%[^A-Z]%'))
GO
Insert TEST Values('1')
Insert TEST Values('7')
Insert TEST Values('12')
Insert TEST Values('ABC')
Insert TEST Values('A12')
Insert TEST Values('12D')
Select * from TEST
GO
你寫的很好啊,你的要求和約束寫的都是「前兩位是大寫字母,後四位是數字」,當然輸入小寫會出錯誤了
J. sql創建表過程中如何達到列的取值約束為第一個字元為字母的要求
定義為char(6),最大容量是為6,不過要求是一定得輸入6個數字才行
可以定義check約束為:
(欄位名 LIKE '[0-9][0-9][0-9][0-9][0-9][0-9]')
列的取值約束為第一個字元為字母可以定義check約束為:
(欄位名 LIKE '[A-Z,a-z]%')
如果在查詢分析器中可以用:
alter table 表名
add check (欄位名 LIKE '[0-9][0-9][0-9][0-9][0-9][0-9]')
和
alter table 表名
add check (欄位名 LIKE '[A-Z,a-z]%')