SQL Server 2012 (“Denali”): FileTable
FileTable is a new feature in SQL Server 2012 that is built on top of SQL Server FILESTREAM technology, which allows BLOB data to be stored as individual files separate from a database’s data files. Interactions with the FileStream files took place only through T-SQL or through code which engaged with OpenSqlFileStream API.
FileTable goes one step further in adding support for the Windows file namespace and compatibility with Windows applications to the file data stored in SQL Server, accessing the files as if they were stored in the file system. It also employs a familiar, hierarchical folder structure, and includes the storage of file attributes, such as created date and modified date.
FileTable lets an application integrate its storage and data management components, and provides integrated SQL Server services – including full-text search and semantic search – over unstructured data and metadata.
More info:
Beyond Relational – Installing SQL Server FileTable
Denali CTP 3 – How to Set Up the FileTable and access the unstructured data from SQL Server
Creating Your First FileTable in SQL Server Denali CTP3
SQL Server 2012 FileTables in T-SQL part 1: functions and methods
SQL Server 2012 FileTables in T-SQL part 2: new rows
SQL Server 2012 FileTable – Part 1
SQL Server 2012 FileTable – Part 2
Video Microsoft SQL Server Beyond Relational Landscape: Current and Future
Hi,
I played and tested this a bit and i found one big disadvantage in this feature.
While copying a file, you cannot execute any queries on the DB!
What happens if you constantly need to copy\delete\modify files?
Can it really be that no reads are available or am I missing something ?
If so, this is a major issue and should be pointed out clearly as a limitation.
Would be happy to hear what you think about it.
Matan
How can you tie these documents in FILETABLE to an existing record (in another table) as FILETABLE have an schema fixed, or identify the user who owns the document? When using varbinary(max) in a normal table you would know it belogs to that particular row. Maybe using the stream_id as foreign key?