Visual Studio 2013 数据库项目 - UDTT - FileStream 列问题

Posted

技术标签:

【中文标题】Visual Studio 2013 数据库项目 - UDTT - FileStream 列问题【英文标题】:Visual Studio 2013 Database Project - UDTT - FileStream Column Issue 【发布时间】:2015-02-13 12:51:47 【问题描述】:

我在 Visual Studio 2013(更新 4)数据库项目中创建带有 FILESTREAM 列的用户定义表类型时遇到问题。

我在项目中添加了一个包含 FILESTREAM 的 FILEGROUP,并通过项目设置 > 数据库设置 > 操作选项卡将其配置为默认文件流文件组。

创建表语法如下:

CREATE TYPE [dbo].[MediaType] AS TABLE (
[Guid] UNIQUEIDENTIFIER NOT NULL,
[MediaTypeId] INT NOT NULL,
[Data] VARBINARY(MAX) FILESTREAM NOT NULL);

我收到以下错误:

SQL46010; FILESTREAM 附近的语法不正确。

我检查了创建具有 FILESTREAM 支持的标准表所需的基本语法 (Click Here),我的语法对我来说似乎很好,所以我猜它是特定于项目的。

任何帮助都会很棒 - 在此先感谢。

【问题讨论】:

【参考方案1】:

我的要求有误 - 我正在使用 UDTT 批量插入媒体数据,但是可以将其作为 VARBINARY(MAX) 存储在 UDTT 中,然后 SELECT-INSERT 将其存储到配置有的真实表中FILESTREAM 列如下:

CREATE TABLE [dbo].[Media]
(
[Id] INT NOT NULL PRIMARY KEY IDENTITY,
[Guid] UNIQUEIDENTIFIER NOT NULL ROWGUIDCOL,
[MediaTypeId] INT NOT NULL,
[Data] VARBINARY(MAX) FILESTREAM NOT NULL
)

在 UDTT 中使用 FILESTREAM 列类型是不正确的。

【讨论】:

以上是关于Visual Studio 2013 数据库项目 - UDTT - FileStream 列问题的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2013 数据库项目 - UDTT - FileStream 列问题

使用Visual Studio2013打开Visual Studio2015项目

Visual Studio 2013 数据库项目 - DROP 目标中的对象但不在项目中

SQL Server 数据库项目/无法在 Visual Studio 2013 中执行视图

Visual Studio 2013:单元测试 SQL Server 数据库项目时模拟存储过程

visual studio 2013 中更改C#项目的 Framework 版本