Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何将映像插入SQLAzure映像列_Sql Server_Azure_Azure Sql Database - Fatal编程技术网

Sql server 如何将映像插入SQLAzure映像列

Sql server 如何将映像插入SQLAzure映像列,sql-server,azure,azure-sql-database,Sql Server,Azure,Azure Sql Database,将数据库部署到本地SQL Server 2012计算机时,我会运行一个部署后脚本,其中包括: SET IDENTITY_INSERT dbo.[EntityType] ON GO INSERT INTO dbo.[EntityType] (ID, Name, Icon) SELECT 1, 'Client', * FROM OPENROWSET(BULK N'c:\icons\client.png', SINGLE_BLOB) AS tempImg SET IDENTITY_INSERT dbo

将数据库部署到本地SQL Server 2012计算机时,我会运行一个部署后脚本,其中包括:

SET IDENTITY_INSERT dbo.[EntityType] ON
GO
INSERT INTO dbo.[EntityType] (ID, Name, Icon)
SELECT 1, 'Client', * FROM OPENROWSET(BULK N'c:\icons\client.png', SINGLE_BLOB) AS tempImg
SET IDENTITY_INSERT dbo.[EntityType] OFF
GO
这将向EntityType表中添加一条记录,包括一个图像,该图像以图像的数据类型添加到列图标中。当我将同一数据库部署到Microsoft Azure时,部署后脚本将失败。手动运行脚本的这一部分时,出现以下错误:

此版本的SQL Server不支持关键字或语句选项“single_blob”

好的,Azure SQL不支持单块,那么如何从Azure的SQL脚本中实现同样的功能呢?我在谷歌上搜索过,有一个奇怪的示例提示如何在一个应用程序中编写C代码,该应用程序允许用户将图像上传到Azure SQL后端,但我不想编写一个带有前端接口的整个应用程序,我只想在我的数据库中的一个表中添加几条记录


我不得不说,在提倡使用Azure SQL作为我们的数据库托管解决方案进行开发之后,我很快开始后悔我的决定。该平台缺乏对扩展属性的支持,现在这意味着简单的数据库部署已经成为一件烦琐的事情

我也遇到了同样的问题,最后使用

创建新的Azure连接 选择C程序 编写脚本,如下所示:

void Main()
{
    var entity = MyDataTable.First(x => x.Id == 1);
    entity.Image = File.ReadAllBytes("c:\\foo\\bar.png");
    SubmitChanges();
}
现在您可以点击F5,数据库将被更新。 要将其用作部署后脚本,请执行以下操作:

将脚本另存为*.linq文件 在应该执行脚本的机器上安装linqpad,或者简单地复制可执行文件 使用lprun运行脚本:lprun myscript.linq
我很确定您需要用.NET代码ie C重写它。您希望C:\会在哪里?无法将文件获取到SQL Azure服务器的文件系统上。无论如何,最好是将图像存储在Blob存储中。