Nếu bạn có nghĩa là sử dụng một chữ, bạn chỉ cần có để tạo ra một chuỗi nhị phân:
insert into Files (FileId, FileData) values (1, 0x010203040506)
Và bạn sẽ có một kỷ lục với một giá trị Sáu byte cho trường fileData.
Bạn cho biết trong nhận xét bạn muốn chỉ định tên tệp mà bạn không thể thực hiện với SQL Server 2000 (hoặc bất kỳ phiên bản nào khác mà tôi biết).
Bạn cần một thủ tục lưu trữ CLR để thực hiện điều này trong SQL Server 2005/2008 hoặc thủ tục được lưu trữ mở rộng (nhưng tôi tránh mọi chi phí đó trừ khi bạn phải), lấy tên tệp và sau đó chèn dữ liệu (hoặc trả về chuỗi byte, nhưng điều đó có thể khá dài).
Liên quan đến vấn đề chỉ có thể lấy dữ liệu từ một SP/truy vấn, tôi sẽ nói câu trả lời là có, bởi vì nếu bạn cung cấp cho SQL Server khả năng đọc tập tin từ hệ thống tập tin, những gì bạn làm gì khi không được kết nối thông qua Windows Authentication, người dùng nào được sử dụng để xác định quyền? Nếu bạn đang chạy dịch vụ với tư cách quản trị viên (Thiên Chúa cấm) thì bạn có thể có quyền nâng cao quyền không được phép.
nhị phân (tối đa) trong MS SQL 2000? Như tôi nhớ trong biến nhị phân phiên bản này có thể chỉ có chiều dài cố định và có thể chứa tới 8000 byte. Trong các dự án của riêng tôi, chúng tôi đã lưu trữ các tệp trong các trường IMAGE. –
@Alex_L, chỉ cần kiểm tra lại lược đồ, đó là hình ảnh. – scottm