Là thế này..em sắp Thi mà không biết làm dạng bài này, làm thì chạy được nhưng khi Insert dữ liệu vào thì nó báo lỗi... em xin gửi bài làm này cho các anh chị xem, ai biết sửa sao chỉ giúp em với, em cám ơn nhiều lắm... Cái chỗ NhânViên đó, nó là khóa chính, rồi ở trong nó, có 1 cái khóa ngoại và cũng là chính nó, em làm chạy được nhưng khi insert dữ liệu vào thì nó báo lỗi: INSERT statement conflicted with COLUMN FOREIGN KEY SAME TABLE constraint 'FK__nhanvien__Ma_NQL__77BFCB91'. The conflict occurred in database 'tongquat', table 'nhanvien', column 'MaNV'. The statement has been terminated. ...>< ko biết sửa sao... create database tongquat ON ( NAME = 'doquyen_dat', FILENAME = 'd:\baitap_dat.mdf', SIZE = 1, MAXSIZE = 2, FILEGROWTH = 10% ) LOG ON ( NAME = 'doquyen_log', FILENAME = 'd:\baitap_log.ldf', SIZE = 1MB, MAXSIZE = 2MB, FILEGROWTH = 20% ) GO use tongquat create table nhanvien (MaNV char(4) primary key, HoNV nvarchar(20), TenNV nvarchar(20), Phai char(5), NgaySinh datetime, ChucVu char(5), Ma_NQL char(4) foreign key references nhanvien(MaNV) ) Insert NhanVien values('NV01','Nguyễn Tấn','Phát', 'Nam', '02/12/1980','NV','NV02') Insert NhanVien values('NV02','Trương Thị Hoàng','Phương', 'Nữ', '03/05/1988','KT','NV05') Insert NhanVien values('NV03','Lê Hoài','Phú', 'Nam', '04/05/1983','NV','NV05') Insert NhanVien values('NV04','Nguyễn Thanh','Phùng', 'Nam', '07/02/1968','TQ','NV05') Insert NhanVien values('NV05','Hồ Thị Thanh','Nga', 'Nữ', '11/02/1960','KT','NV02') create table khachhang (MaKH nvarchar(10)primary key, TenCTy nvarchar(100), DiaChi nvarchar(50), DienThoai nvarchar(20)) alter table khachhang alter column tenCty nvarchar(50) --drop table khachhang Insert khachHang values('FAHASA','Phát Hành Sách Sài Gòn','12 Thuận Kiều F6 Q11','08.7675655') Insert KhachHang values('FISC','Dịch Vụ Đầu Tư Nước Ngoài','31 Trương Định P6 Q1','09.6544343') Insert KhachHang values('HUNSAN','Hùng Sán','275 Lý Thường Kiệt P15 Q11','07.5454543') Insert KhachHang values('SAFICO','Thuỷ Sản Xuất Khẩu','47 Bải Sậy P1 Q3','08.5635467') create table hoadon (MaHD int primary key, LoaiHD nvarchar(10), MaKH nvarchar(10)foreign key references khachhang(makh), MaNV char(4)foreign key references nhanvien(manv), NgayLapHD datetime) insert HoaDon values('10145','Xuất','HUNSAN', 'NV02','09/01/06') insert HoaDon values('10148','Nhập','FISC', 'NV01','10/01/06') insert HoaDon values('10150','Xuất','FAHASA', 'NV04','01/17/06') insert HoaDon values('10156','Trả','FISC', 'NV01','01/28/06') insert HoaDon values('10157','Trả','FISC', 'NV04','03/27/06') insert HoaDon values('10158','Nhập','FAHASA', 'NV02','3/04/06') insert HoaDon values('10166','Nhập','HUNSAN', 'NV03','04/13/06') create table ChiTietHoaDon (MaHD int foreign key references HoaDon(MaHD), MaSP int foreign key references SanPham(MaSP), SoLuong tinyint, primary key(MaHD,MaSP)) insert ChiTietHoaDon values('10145',1,8) insert ChiTietHoaDon values('10145',2,20) insert ChiTietHoaDon values('10148',1,35) insert ChiTietHoaDon values('10148',2,12) insert ChiTietHoaDon values('10148',3,24) insert ChiTietHoaDon values('10150',1,9) insert ChiTietHoaDon values('10156',1,25) insert ChiTietHoaDon values('10156',2,25) insert ChiTietHoaDon values('10157',3,35) insert ChiTietHoaDon values('10158',1,12) insert ChiTietHoaDon values('10158',3,20) create table sanpham (MaSP int primary key , TenSP nvarchar(20), DVT nvarchar(20), DonGia int) --sua 1 cot trong 1 ban nao do alter table sanpham alter column dongia int --drop table sanpham Insert sanPham values(1,'Rượu','Chai',230) Insert SanPham values(2,'Gia Vị','Thùng',20) Insert SanPham values(3,'Bánh Kem','Cái',50) Insert SanPham values(4,'Đường','Kg',10) select *from nhanvien select *from sanpham select *from chitiethoadon select *from hoadon select *from khachhang /*1. Thêm vào bảng khách hàng một khách hàng mới với các thông tin sau: Mã khách hàng: CO.OP Tên khách hàng: Sài gòn Co.opMart Địa chỉ: 573 Nguyễn Kiệm, Q.Phú Nhuận*/ insert khachhang values('CO.OP','Sài gòn Co.opMart','573 Nguyễn Kiệm, Q.Phú Nhuận',NULL) select *from khachhang /*2. Thêm vào bảng nhân viên một nhân viên mới với các thông tin sau: Mã nhân viên: NV06 Họ nhân viên: Lê Hoà Tên nhân viên: Lai Phái: Lai Ngày sinh: 15/10/85 Chức vụ: GĐ */ insert nhanvien values('NV06','Lê Hoà','Lai','nam','10/15/85','GD',null) select *from nhanvien /*3. Cập nhật Ma_NQL là ‘NV06’ cho nhân viên có mã nhân viên ‘NV02’.*/ update nhanvien set ma_nql='NV06' where manv='NV02' select *from nhanvien --4. Liệt kê các khách hàng chưa có số điện thoại. select *from khachhang where dienthoai is null select *from khachhang --5. Cho biết chi tiết những hóa đơn lập trong tháng 1 gồm: --mã hóa đơn, mã khách, tên hàng, mã nhân viên, ngày lập hoá đơn select h.mahd,makh,tensp,manv,ngaylaphd from chitiethoadon c,sanpham s,hoadon h where h.mahd=c.mahd and s.masp=c.masp and month(ngaylaphd) ='1' --14Viết thủ tục Sp_InsertSanPham có tham số dạng input dùng để chèn một mẫu tin vào bảng Sanpham. create proc Sp_InsertSanPham @ma int,@ten nvarchar(30), @DVT nvarchar(20),@dg money as insert dbo.sanpham values(@ma,@ten,@dvt,@dg) exec Sp_InsertSanPham 5,'Gao','KG',17000 exec Sp_InsertSanPham 6,'Duong','KG',10000 --Viết thủ tục Sp_InsertNV_KH có tham số dùng để chèn một mẫu tin vào bảng NhanVien hoặc KhachHang. --Trong dùng 1 tham số @flag kiểu bit để phân biệt 2 bảng trên khi chèn. alter proc Sp_InsertNV_KH @ma char(4),@honv nvarchar(20),@ten nvarchar(20), @phai char(5),@ngaysinh datetime,@chucvu char(5),@ma_nql char (4),@dc nvarchar(40),@dt char(10),@flag bit as if (@flag=0) insert dbo.nhanvien values (@ma,@honv,@ten,@phai,@ngaysinh,@chucvu,@ma_nql) else insert khachhang values(@ma,@ten,@dc,@dt) exec Sp_InsertNV_KH 'LAI',null,'CTy TNHH Lai',null,null,null,null,'Q1','08255555',1 exec Sp_InsertNV_KH 'NV09','Nguyen Thi','Lai',null,null,null,null,'Q1','08255555',0 Cái hình của bài em làm ở file đính kèm... mong các anh chị giúp em
Dạ ... đó là mã người quản Lý... vì trong cái đề... bắt làm như thế... em hem có bít làm... kì wá, bị lỗi hoài, chắc cô ra sai đề hay sao ta
tui thì thấy là thế này, ông check lại nha Khi ông tạo bảng xong và chạy các câu insert dữ liệu vào, thì dòng khóa ngoại tham chiếu là Insert NhanVien values('NV01','Nguyễn Tấn','Phát', 'Nam', '02/12/1980','NV','NV02') ở đây, dòng đầu tiên của bảng có khóa chính là nv01, trong khi lại tham chiếu đến nv02 là chưa có trong bảng Để fix, ông có thề làm như sau, tạm bỏ dữ liệu tham chiw61u khóa ngoại ra đã, Insert NhanVien values('NV01','Nguyễn Tấn','Phát', 'Nam', '02/12/1980','NV',NULL) Sau đó mới dùng câu lệnh update hay gõ bằng tay vào lại Try ...
Ồ Thanks... tui sẽ thử... cám ơn... tối nay có làm được hay hok tui sẽ pm lại... Cám ơn... em làm được roài... thanks mọi người... Thanks SoII