在SQL Server中为Image列创建数据

时间:2013-08-20 05:36:42

标签: sql-server types

我需要创建数据来测试SQL Server中Image Datatype的限制。它能够保存0到2 ^ 31-1(2,147,483,647)字节的可变长度二进制数据。我在SQL Server中直接使用以下内容:

INSERT INTO Employees (Id, Name, Photo) 
SELECT 10, 'John', BulkColumn FROM Openrowset( Bulk 'E:\photo.jpeg', Single_Blob) as EmployeePicture

我的问题是,如何确保将最大大小(2,147,483,647字节)插入到列中?我只是找到尺寸为2G的图像并将其插入到列中吗?还有另一种方法吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

大多数JPEG查看器完全忽略图像数据后的字节。以下代码将使用足够的字节来使文件成为您想要的任何大小。我测试了它,并在Windows图像查看器,paint.net和Photoshop中打开了生成的图像。您应该能够用它创建测试文件......

    long desiredSize = 200000;
    byte[] buffer = new byte[1];
    string filename = @"c:\temp\sample.jpg";
    using (var fs = new FileStream(filename, FileMode.Open, FileAccess.ReadWrite))
    {
        fs.Seek(desiredSize - fs.Length - 1, SeekOrigin.End);
        fs.Write(buffer, 0, 1);
        fs.Close();
    }