MSDN có một bài viết Working With Large Value Types cố gắng giải thích cách hoạt động của tính năng nhập nhưng có thể hơi khó hiểu vì nó làm 2 việc cùng nhau. Vì vậy, đây là một phiên bản đơn giản hóa và chia thành 2 phần. Giả sử bảng đơn giản:
CREATE TABLE [Thumbnail](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Data] [varbinary](max) NULL
CONSTRAINT [PK_Thumbnail] PRIMARY KEY CLUSTERED
(
[Id] ASC
)) ON [PRIMARY]
Nếu bạn chạy (trong SSMS):
SELECT * FROM OPENROWSET (BULK 'C:\Test\TestPic1.jpg', SINGLE_BLOB)
nó sẽ hiển thị rằng kết quả trông giống như một bảng với một cột tên là BulkColumn. Đó là lý do tại sao bạn có thể sử dụng nó trong INSERT như:
INSERT [Thumbnail] (Data)
SELECT * FROM OPENROWSET (BULK 'C:\Test\TestPic1.jpg', SINGLE_BLOB)
Phần còn lại chỉ vừa lắp nó vào với nhiều cột mà bàn của bạn có thể có hoặc không có. Nếu bạn đặt tên cho kết quả od mà chọn FOO thì bạn có thể sử dụng SELECT Foo.BulkColumn và ass sau đó hằng số cho các trường khác trong bảng của bạn.
Bài đăng có thể phức tạp hơn là cách xuất dữ liệu đó trở lại thành tệp để bạn có thể kiểm tra xem nó vẫn OK. Nếu bạn chạy trên dòng cmd:
bcp "select Data from B2B.dbo.Thumbnail where Id=1" queryout D:\T\TestImage1_out2.dds -T -L 1
Nó sẽ bắt đầu rên rỉ cho thêm 4 "thông số" và sẽ cung cấp cho mặc định gây hiểu lầm (whihc sẽ dẫn đến thay đổi tệp). Bạn có thể chấp nhận một đầu tiên, thiết lập 2 đến 0 và sau đó assept thứ 3 và thứ 4, hoặc là rõ ràng:
Enter the file storage type of field Data [varbinary(max)]:
Enter prefix-length of field Data [8]: 0
Enter length of field Data [0]:
Enter field terminator [none]:
Sau đó nó sẽ hỏi:
Do you want to save this format information in a file? [Y/n] y
Host filename [bcp.fmt]: C:\Test\bcp_2.fmt
Lần sau bạn phải chạy nó thêm -f C: \ Test \ bcp_2.fmt và nó sẽ ngừng rên rỉ :-) Tiết kiệm rất nhiều thời gian và đau buồn.
TSQL như trong nút 'truy vấn mới' trên thanh công cụ trên cùng bên phải? – Toad
T-SQL là ngôn ngữ truy vấn mà SQL Server sử dụng. Có, bạn sẽ cần phải tạo một truy vấn mới ...... –
cảm ơn! sẽ cung cấp cho điều này một whirl – Toad