View Full Version : Sinh mã tự động trong sql, hic hic
bill_getas
15-07-2008, 11:03
Mình đang làm 1 đề tài về quan lý sinh viên, Mình cần sinh mã tự động có dạng như: SV1, SV2, SV3... Mình ko rành SQl lắm. Các bạn chỉ cho mình với.
Xin cám ơn
trungtd_vtic
15-07-2008, 15:01
tìm trước khi hỏi bạn nhé. Trong dd này có nhiều bài liên quan đến vấn đề bạn hỏi rồi
nguyen_lan2005
15-07-2008, 21:17
Nếu ở sài gòn bạn sẽ được hướng dẫn mọi thứ khi cần.
www.becivn.net
www.nguyenlan.net
YH nick: lanit_itec
sodepsochon.com
16-07-2008, 11:50
Mình đang làm 1 đề tài về quan lý sinh viên, Mình cần sinh mã tự động có dạng như: SV1, SV2, SV3... Mình ko rành SQl lắm. Các bạn chỉ cho mình với.
Xin cám ơn
Giả sử cái Table của bạn có cấu trúc
CREATE TABLE [dbo].[SINHVIEN] (
[ID] [decimal](18, 0) IDENTITY (1, 1) NOT NULL ,
[MaSV] [nvarchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Hoten] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
Bạn muốn insert 1000 sinh viên có mã từ SV1 đến SV1000, Chạy Query Analyzer rồi paste cái đoạn này vào, nhanh chóng và đơn giản:
declare @i decimal
set @i=1
while @i<=1000
begin
insert into SINHVIEN(MaSV,Hoten)
values('SV' + ltrim(rtrim(convert(varchar,@i))),'Ho ten sinh vien ma ' + ltrim(rtrim(convert(varchar,@i))))
set @i=@i+1
end
Đơn giản thế thôi, chúc bạn thành công!
embebongbong
18-07-2008, 08:22
Nếu ở sài gòn bạn sẽ được hướng dẫn mọi thứ khi cần.
www.becivn.net
www.nguyenlan.net
YH nick: lanit_itec
Câu này và cũng thấy trên diễn đàn này rất rất nhiều những câu trả lời thế này ? Diễn đàn thì đâu có giới hạn Vùng , miền , dân tộc hay khoảng cách chứ ? nếu trả lời được thì trả lời giúp còn ko thì.........im cha cho rồi chứ đọc mấy câu trả lời đại loại như vậy thật tốn nhiều thời gian. Mà dạo này nhiều câu như thế quá
sodepsochon.com
18-07-2008, 17:04
làm theo bạn như trên thì ra kiể SV9, SV10, cho mình hỏi nếu ID là SV0001, SV0002 thì làm thế nào
Nếu có quy định độ dài cố định thì hoàn toàn có thể sinh được. Sử dụng đoạn sscript sau:
- Giả sử mã có độ dài là 8 ký tự, nếu mà từ 10000000 đến 99999999 thi không thêm 0 vào đầu, còn lại thì thêm 8-độ dài của mã ký tự 0 vào đầu.
Code đây:
declare @i decimal
declare @leng decimal
declare @Masv nvarchar(10)
set @i=1
set @leng=8
while @i<=1000
begin
set @Masv = REPLICATE('0',8-len(ltrim(rtrim(convert(varchar,@i))))) + ltrim(rtrim(convert(varchar,@i)))
insert into SINHVIEN(MaSV,Hoten)
values('SV' + @Masv,'Ho ten sinh vien ma ' + @Masv)
set @i=@i+1
end
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.