2011-04-05 63 views
2

這是查詢我已經找到了將二進制數據(用VARBINARY),這是可以正常使用 CREATE TABLE Employees (
Id int,
Name varchar(50) not null,
Photo varbinary(max) not null
)
問題通過SQL查詢(SQL Server 2008中)將二進制數據

INSERT INTO Employees (Id, Name, Photo)
SELECT 10, 'John', BulkColumn from Openrowset(Bulk 'C:\photo.bmp', Single_Blob) as EmployeePicture

但是,如果表員工有什麼列,如:
CREATE TABLE Employees (
Id int,
Photo varbinary(max) not null,
Name varchar(50) not null
)

[組圖列第二看過來!]
我試圖操縱插入查詢,但沒有幫助!

+0

東西向我們展示你嘗試過什麼查詢。你是否試圖按照原樣使用查詢?由於您正在使用列出列名的'INSERT INTO'變體,因此列的順序與實際表中的順序無關 - 這就是使用列名的要點 - 無需擔心關於他們在桌上的順序。 – QuantumMechanic 2011-04-05 16:12:14

回答

2

你會使用

INSERT INTO Employees 
SELECT 10, BulkColumn AS EmployeePicture, 'John' 
FROM OPENROWSET(BULK 'C:\photo.bmp', Single_Blob) bc 

或者

INSERT INTO Employees 
SELECT 10, 
     (SELECT BulkColumn AS EmployeePicture FROM OPENROWSET(BULK 'C:\photo.bmp', Single_Blob) bc), 
     'John' 

我相信你很可能試圖這樣

INSERT INTO Employees 
SELECT 10, 
     BulkColumn AS EmployeePicture FROM OPENROWSET(BULK 'C:\photo.bmp', Single_Blob), 
     'John' 
+0

你是對的馬丁!這是我嘗試的7到8個查詢之一。 :)我會使用第二個查詢,因爲它在邏輯上是合理的,並且可以通過它輕鬆插入多個二進制數據。有沒有在線資源,我可以學習和理解這些查詢的語法?我知道在[W3Schools](http://www.w3schools.com)上提供的SQL的基礎知識,但這些複雜的查詢很難找到。順便說一句你用哪種格式來顯示查詢? – user646093 2011-04-06 14:10:58

+0

要將查詢格式化爲StackOverflow中的代碼,請選擇要格式化爲代碼的文本並點擊代碼圖標'{}'。不太確定在線資源。 Joe Celko的SQL for Smarties絕對值得一讀。 – 2011-04-06 14:16:37

+1

再次感謝馬丁。我拿到了這本書,肯定會從中得到一些東西。 – user646093 2011-04-07 17:43:05