{"id":1061,"date":"2008-04-07T23:07:33","date_gmt":"2008-04-07T23:07:33","guid":{"rendered":"\/blogs\/paul\/post\/SQL-Server-2008-How-to-get-FILESTREAM-and-partitioning-to-work.aspx"},"modified":"2013-04-02T18:12:39","modified_gmt":"2013-04-03T01:12:39","slug":"sql-server-2008-how-to-get-filestream-and-partitioning-to-work","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/paul\/sql-server-2008-how-to-get-filestream-and-partitioning-to-work\/","title":{"rendered":"SQL Server 2008: How to get FILESTREAM and partitioning to work"},"content":{"rendered":"<p><FONT face=Verdana size=2><br \/>\n<P>Now we&#8217;re back from Iceland and I have a week to catch up with some content development before the MVP Summit next week and then SQL Connections the following week.<\/P><br \/>\n<P>One of the things I struggled with earlier in the year while writing a SQL Server 2008 training course for Microsoft was how to get FILESTREAM to work with partitioning. There wasn&#8217;t (and still isn&#8217;t) any information in Books Online that I could find so I had to play around to figure it out.<\/P><br \/>\n<P>I should say that the CTP-6\/February CTP version of Books Online *does* have a bunch of code examples around using FILESTREAM, so I&#8217;m not going to write a blog post about that. Look in the <EM>Getting Started with FILESTREAM Storage<\/EM> section.<\/P><br \/>\n<P>Back to partitioning &#8211; first I created a test database:<\/P><br \/>\n<BLOCKQUOTE dir=ltr style=\"MARGIN-RIGHT: 0px\"><FONT color=#0000ff size=5><br \/>\n<P><FONT face=\"Courier New\" size=2>CREATE<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#000000> <\/FONT><FONT color=#0000ff>DATABASE<\/FONT><FONT color=#000000> FileStreamTestDB<BR><\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#0000ff>ON<\/FONT><FONT color=#000000> <\/FONT><FONT color=#0000ff>PRIMARY<BR>&nbsp;&nbsp;&nbsp;<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#808080>(<\/FONT><FONT color=#0000ff>NAME<\/FONT> <FONT color=#808080>=<\/FONT> FileStreamTestDB_data<FONT color=#808080>,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#0000ff>FILENAME<\/FONT> <FONT color=#808080>=<\/FONT> N<FONT color=#ff0000>&#8216;C:\\Metro Demos\\FileStreamTestDB\\FSTestDB_data.mdf&#8217;<\/FONT><FONT color=#808080>),<BR><\/FONT><\/FONT><FONT color=#0000ff><FONT face=\"Courier New\">FILEGROUP<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#000000> FileStreamFileGroup <\/FONT><FONT color=#0000ff>CONTAINS<\/FONT><FONT color=#000000> <\/FONT><FONT color=#0000ff>FILESTREAM<BR>&nbsp;&nbsp;&nbsp;<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#808080>(<\/FONT><FONT color=#0000ff>NAME<\/FONT> <FONT color=#808080>=<\/FONT> FileStreamTestDBDocuments<FONT color=#808080>,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#0000ff>FILENAME<\/FONT> <FONT color=#808080>=<\/FONT> N<FONT color=#ff0000>&#8216;C:\\Metro Demos\\FileStreamTestDB\\Documents&#8217;<\/FONT><FONT color=#808080>)<BR><\/FONT><\/FONT><FONT color=#ff00ff><FONT face=\"Courier New\">LOG<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#000000> <\/FONT><FONT color=#0000ff>ON<BR>&nbsp;&nbsp;&nbsp;<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#808080>(<\/FONT><FONT color=#0000ff>NAME<\/FONT> <FONT color=#808080>=<\/FONT> <FONT color=#ff0000>&#8216;FileStreamTestDB_log&#8217;<\/FONT><FONT color=#808080>,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#0000ff>FILENAME<\/FONT> <FONT color=#808080>=<\/FONT> N<FONT color=#ff0000>&#8216;C:\\Metro Demos\\FileStreamTestDB\\FSTestDB_log.ldf&#8217;<\/FONT><FONT color=#808080>);<BR><\/FONT><\/FONT><FONT face=\"Courier New\" size=2>GO<\/P><\/FONT><\/BLOCKQUOTE><br \/>\n<P>Then I tried the obvious, knowing that I can&#8217;t partition on the <FONT face=\"Courier New\">ROWGUIDCOL<\/FONT>:<\/P><br \/>\n<BLOCKQUOTE dir=ltr style=\"MARGIN-RIGHT: 0px\"><FONT color=#0000ff size=5><br \/>\n<P><FONT face=\"Courier New\" size=2>CREATE<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#000000> <\/FONT><FONT color=#0000ff>PARTITION<\/FONT><FONT color=#000000> <\/FONT><FONT color=#0000ff>FUNCTION<\/FONT><FONT color=#000000> MyPartFunction <\/FONT><FONT color=#808080>(<\/FONT><FONT color=#0000ff>INT<\/FONT><FONT color=#808080>) <\/FONT><\/FONT><FONT color=#0000ff><FONT face=\"Courier New\">AS<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#000000> <\/FONT><FONT color=#0000ff>RANGE<\/FONT><FONT color=#000000> <\/FONT><FONT color=#808080>RIGHT<\/FONT><FONT color=#000000> <\/FONT><FONT color=#0000ff>FOR<\/FONT><FONT color=#000000> <\/FONT><FONT color=#0000ff>VALUES<\/FONT><FONT color=#000000> <\/FONT><FONT color=#808080>(<\/FONT><FONT color=#000000>1000<\/FONT><FONT color=#808080>,<\/FONT><FONT color=#000000> 2000<\/FONT><FONT color=#808080>);<\/P><\/FONT><\/FONT><FONT color=#0000ff><br \/>\n<P><FONT face=\"Courier New\">CREATE<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#000000> <\/FONT><FONT color=#0000ff>PARTITION<\/FONT><FONT color=#000000> <\/FONT><FONT color=#0000ff>SCHEME<\/FONT><FONT color=#000000> MyPartScheme <\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#0000ff>AS<\/FONT> <FONT color=#0000ff>PARTITION<\/FONT> MyPartFunction <\/FONT><FONT color=#808080><FONT face=\"Courier New\">ALL<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#000000> <\/FONT><FONT color=#0000ff>TO<\/FONT><FONT color=#000000> <\/FONT><FONT color=#808080>(<\/FONT><FONT color=#000000>[PRIMARY]<\/FONT><FONT color=#808080>);<\/P><\/FONT><\/FONT><FONT color=#0000ff><br \/>\n<P><FONT face=\"Courier New\">CREATE<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#000000> <\/FONT><FONT color=#0000ff>TABLE<\/FONT><FONT color=#000000> FileStreamTest <\/FONT><FONT color=#808080>(<BR>&nbsp;&nbsp;&nbsp;<\/FONT><\/FONT><FONT face=\"Courier New\">TestId <FONT color=#0000ff>UNIQUEIDENTIFIER<\/FONT> <FONT color=#0000ff>ROWGUIDCOL<\/FONT> <FONT color=#808080>NOT<\/FONT> <FONT color=#808080>NULL <\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#0000ff>UNIQUE<\/FONT><FONT color=#808080>,<BR>&nbsp;&nbsp;&nbsp;<\/FONT><\/FONT><FONT face=\"Courier New\">Customer <FONT color=#0000ff>INT<\/FONT><FONT color=#808080>,<BR>&nbsp;&nbsp;&nbsp;<\/FONT><FONT color=#000000>[<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#000000>Name]<\/FONT> <FONT color=#0000ff>VARCHAR<\/FONT> <FONT color=#808080>(<\/FONT>25<FONT color=#808080>),<BR>&nbsp;&nbsp;&nbsp;<\/FONT><FONT color=#000000>[<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#000000>Document]<\/FONT> <FONT color=#0000ff>VARBINARY<\/FONT><FONT color=#808080>(<\/FONT><FONT color=#ff00ff>MAX<\/FONT><FONT color=#808080>)<\/FONT> <FONT color=#0000ff>FILESTREAM<\/FONT><FONT color=#808080>)<BR><\/FONT><\/FONT><FONT color=#0000ff><FONT face=\"Courier New\">ON<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#000000> MyPartScheme <\/FONT><FONT color=#808080>(<\/FONT><FONT color=#000000>Customer<\/FONT><FONT color=#808080>);<BR><\/FONT><\/FONT><FONT face=\"Courier New\" size=2>GO<\/FONT><\/P><br \/>\n<P><FONT face=\"Courier New\" size=2>Partition scheme &#8216;MyPartScheme&#8217; has been created successfully. &#8216;PRIMARY&#8217; is marked as the next used filegroup in partition scheme &#8216;MyPartScheme&#8217;.<BR><FONT color=#ff0000>Msg 1921, Level 16, State 4, Line 8<BR>Invalid filegroup &#8216;default&#8217; specified.<\/FONT><\/FONT><\/P><\/BLOCKQUOTE><br \/>\n<P dir=ltr><FONT face=\"Courier New\" size=2><FONT face=Verdana color=#000000>Eventually I worked out that you have to define a separate partitioning scheme just for FILESTREAM data. This is because the regular data is stored on non-FILESTREAM filegroups, so trying to use the regular partitioning scheme for FILESTREAM would mean telling the Engine to store the FILESTREAM data in non-FILESTREAM filegroups. Clearly a non-starter. Ok &#8211; try again with a separate partitioning scheme (the prior <FONT face=\"Courier New\">MyPartFunction<\/FONT> partition function and <FONT face=\"Courier New\">MyPartScheme<\/FONT> partition scheme already exist now remember):<\/FONT><\/FONT><\/P><br \/>\n<BLOCKQUOTE dir=ltr style=\"MARGIN-RIGHT: 0px\"><FONT color=#0000ff size=5><br \/>\n<P><FONT face=\"Courier New\" size=2>CREATE<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#000000> <\/FONT><FONT color=#0000ff>PARTITION<\/FONT><FONT color=#000000> <\/FONT><FONT color=#0000ff>SCHEME<\/FONT><\/FONT><FONT face=\"Courier New\" color=#000000> MyFSPartScheme <\/FONT><FONT face=\"Courier New\"><FONT color=#0000ff>AS<\/FONT> <FONT color=#0000ff>PARTITION<\/FONT> MyPartFunction <\/FONT><FONT color=#808080><FONT face=\"Courier New\">ALL<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#000000> <\/FONT><FONT color=#0000ff>TO<\/FONT><FONT color=#000000> <\/FONT><FONT color=#808080>(<\/FONT><FONT color=#000000>[FileStreamFileGroup]<\/FONT><FONT color=#808080>);<\/P><\/FONT><\/FONT><FONT color=#0000ff><br \/>\n<P><FONT face=\"Courier New\">CREATE<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#000000> <\/FONT><FONT color=#0000ff>TABLE<\/FONT><FONT color=#000000> FileStreamTest <\/FONT><FONT color=#808080>(<BR>&nbsp;&nbsp;&nbsp;<\/FONT><\/FONT><FONT face=\"Courier New\">TestId <\/FONT><FONT face=\"Courier New\"><FONT color=#0000ff>UNIQUEIDENTIFIER<\/FONT> <FONT color=#0000ff>ROWGUIDCOL<\/FONT> <FONT color=#808080>NOT<\/FONT> <FONT color=#808080>NULL<\/FONT> <FONT color=#0000ff>UNIQUE<\/FONT><FONT color=#808080>,<BR>&nbsp;&nbsp;&nbsp;<\/FONT><\/FONT><FONT face=\"Courier New\">Customer <\/FONT><FONT face=\"Courier New\"><FONT color=#0000ff>INT<\/FONT><FONT color=#808080>,<BR>&nbsp;&nbsp;&nbsp;<\/FONT><\/FONT><FONT face=\"Courier New\">[Name] <\/FONT><FONT face=\"Courier New\"><FONT color=#0000ff>VARCHAR<\/FONT> <FONT color=#808080>(<\/FONT>25<FONT color=#808080>),<BR>&nbsp;&nbsp;&nbsp;<\/FONT><\/FONT><FONT face=\"Courier New\">[Document] <\/FONT><FONT face=\"Courier New\"><FONT color=#0000ff>VARBINARY<\/FONT><FONT color=#808080>(<\/FONT><FONT color=#ff00ff>MAX<\/FONT><FONT color=#808080>)<\/FONT> <FONT color=#0000ff>FILESTREAM<\/FONT><FONT color=#808080>)<BR><\/FONT><\/FONT><FONT color=#0000ff><FONT face=\"Courier New\">ON<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#000000> MyPartScheme <\/FONT><FONT color=#808080>(<\/FONT><FONT color=#000000>Customer<\/FONT><FONT color=#808080>)<BR><\/FONT><\/FONT><FONT color=#0000ff><FONT face=\"Courier New\">FILESTREAM_ON<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#000000> MyFSPartScheme<\/FONT><FONT color=#808080>;<BR><\/FONT><\/FONT><FONT face=\"Courier New\">GO<\/FONT><\/P><br \/>\n<P><FONT face=\"Courier New\">Partition scheme &#8216;MyFSPartScheme&#8217; has been created successfully. &#8216;FileStreamFileGroup&#8217; is marked as the next used filegroup in partition scheme &#8216;MyFSPartScheme&#8217;.<BR><FONT color=#ff0000>Msg 1908, Level 16, State 1, Line 1<BR>Column &#8216;Customer&#8217; is partitioning column of the index &#8216;UQ__FileStreamTest__03317E3D&#8217;. Partition columns for a unique index must be a subset of the index key.<BR>Msg 1750, Level 16, State 0, Line 1<BR>Could not create constraint. See previous errors.<BR><\/FONT><\/FONT><\/P><\/BLOCKQUOTE><br \/>\n<P dir=ltr><FONT face=\"Courier New\"><FONT color=#ff0000><FONT face=Verdana color=#000000>Hmm &#8211; I can&#8217;t partition on <FONT face=\"Courier New\">Customer<\/FONT> because there&#8217;s already a unique index over <FONT face=\"Courier New\">TestId<\/FONT><FONT face=Verdana> &#8211; UNLESS I specifically set the unique index on <FONT face=\"Courier New\">TestId<\/FONT> to be non-partitioned by setting a filegroup for it:<\/FONT><\/FONT><\/FONT><\/FONT><\/P><br \/>\n<BLOCKQUOTE dir=ltr style=\"MARGIN-RIGHT: 0px\"><FONT color=#0000ff size=5><br \/>\n<P><FONT face=\"Courier New\" size=2>CREATE<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#000000> <\/FONT><FONT color=#0000ff>TABLE<\/FONT><FONT color=#000000> FileStreamTest <\/FONT><FONT color=#808080>(<BR>&nbsp;&nbsp;&nbsp;<\/FONT><\/FONT><FONT face=\"Courier New\">TestId <\/FONT><FONT face=\"Courier New\"><FONT color=#0000ff>UNIQUEIDENTIFIER<\/FONT> <FONT color=#0000ff>ROWGUIDCOL<\/FONT> <FONT color=#808080>NOT<\/FONT> <FONT color=#808080>NULL <\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#0000ff>UNIQUE<\/FONT> <FONT color=#0000ff>ON<\/FONT> [PRIMARY]<FONT color=#808080>,<BR><\/FONT><\/FONT><FONT face=\"Courier New\">&nbsp;&nbsp;&nbsp;Customer <\/FONT><FONT face=\"Courier New\"><FONT color=#0000ff>INT<\/FONT><FONT color=#808080>,<BR>&nbsp;&nbsp;&nbsp;<\/FONT><\/FONT><FONT face=\"Courier New\">[Name] <\/FONT><FONT face=\"Courier New\"><FONT color=#0000ff>VARCHAR<\/FONT> <FONT color=#808080>(<\/FONT>25<FONT color=#808080>),<BR>&nbsp;&nbsp;&nbsp;<\/FONT><\/FONT><FONT face=\"Courier New\">[Document] <\/FONT><FONT face=\"Courier New\"><FONT color=#0000ff>VARBINARY<\/FONT><FONT color=#808080>(<\/FONT><FONT color=#ff00ff>MAX<\/FONT><FONT color=#808080>)<\/FONT> <FONT color=#0000ff>FILESTREAM<\/FONT><FONT color=#808080>)<BR><\/FONT><\/FONT><FONT color=#0000ff><FONT face=\"Courier New\">ON<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#000000> MyPartScheme <\/FONT><FONT color=#808080>(<\/FONT><FONT color=#000000>Customer<\/FONT><FONT color=#808080>)<BR><\/FONT><\/FONT><FONT color=#0000ff><FONT face=\"Courier New\">FILESTREAM_ON<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#000000> MyFSPartScheme<\/FONT><FONT color=#808080>;<BR><\/FONT><\/FONT><FONT face=\"Courier New\">GO<\/FONT><\/P><\/BLOCKQUOTE><br \/>\n<P dir=ltr><FONT face=\"Courier New\"><FONT face=Verdana>That works! Now &#8211; the BIG issue with this setup is that switching partitions won&#8217;t work while the unaligned index is enabled. So how to disable it? First we need to find out what it&#8217;s called:<\/FONT><\/FONT><\/P><br \/>\n<BLOCKQUOTE dir=ltr style=\"MARGIN-RIGHT: 0px\"><FONT color=#0000ff size=5><br \/>\n<P><FONT face=\"Courier New\" size=2>SELECT<\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#000000> <\/FONT><FONT color=#808080>*<\/FONT><FONT color=#000000> <\/FONT><FONT color=#0000ff>FROM<\/FONT><FONT color=#000000> <\/FONT><FONT color=#008000>sys.indexes <\/FONT><\/FONT><FONT face=\"Courier New\"><FONT color=#0000ff>WHERE<\/FONT> [object_id] <FONT color=#808080>=<\/FONT> <FONT color=#ff00ff>OBJECT_ID<\/FONT> <FONT color=#808080>(<\/FONT><FONT color=#ff0000>&#8216;FileStreamTest&#8217;<\/FONT><FONT color=#808080 size=5><FONT size=2>);<BR><\/FONT><\/FONT><\/FONT><FONT face=\"Courier New\">GO<\/FONT><\/P><\/BLOCKQUOTE><br \/>\n<P dir=ltr><FONT face=\"Courier New\"><FONT face=Verdana>And then disable it:<\/FONT><\/FONT><\/P><br \/>\n<BLOCKQUOTE dir=ltr style=\"MARGIN-RIGHT: 0px\"><FONT face=\"Courier New\"><FONT color=#0000ff size=5><br \/>\n<P><FONT size=2>ALTER<\/FONT><\/FONT><FONT color=#000000> <\/FONT><FONT color=#0000ff>INDEX<\/FONT><FONT color=#000000> UQ__FileStre__8CC33161060DEAE8 <\/FONT><FONT color=#0000ff>ON<\/FONT><FONT color=#000000> FileStreamTest <\/FONT><FONT color=#0000ff>DISABLE<\/FONT><FONT color=#808080 size=5><FONT size=2>;<\/FONT><\/FONT><\/P><\/BLOCKQUOTE><br \/>\n<P dir=ltr><FONT color=#808080 size=5><FONT face=Verdana color=#000000 size=2>Now you can do partition switching. Here&#8217;s the catch &#8211; to re-enable the index you need to REBUILD it &#8211; which is a size of data operation! The upshot of all this is that partitioning can be made to work with FILESTREAM data but partition switching is no longer a metadata-only operation.<\/FONT><\/FONT><\/P><br \/>\n<P dir=ltr><FONT color=#808080 size=5><FONT face=Verdana color=#000000 size=2>Hopefully this will be addressed for V2.<\/FONT><\/P><\/FONT><\/FONT><\/FONT><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Now we&#8217;re back from Iceland and I have a week to catch up with some content development before the MVP Summit next week and then SQL Connections the following week. One of the things I struggled with earlier in the year while writing a SQL Server 2008 training course for Microsoft was how to get [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[41,65,86],"tags":[],"class_list":["post-1061","post","type-post","status-publish","format-standard","hentry","category-filestream","category-partitioning","category-sql-server-2008"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SQL Server 2008: How to get FILESTREAM and partitioning to work - Paul S. Randal<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sqlskills.com\/blogs\/paul\/sql-server-2008-how-to-get-filestream-and-partitioning-to-work\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL Server 2008: How to get FILESTREAM and partitioning to work - Paul S. Randal\" \/>\n<meta property=\"og:description\" content=\"Now we&#8217;re back from Iceland and I have a week to catch up with some content development before the MVP Summit next week and then SQL Connections the following week. One of the things I struggled with earlier in the year while writing a SQL Server 2008 training course for Microsoft was how to get [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/paul\/sql-server-2008-how-to-get-filestream-and-partitioning-to-work\/\" \/>\n<meta property=\"og:site_name\" content=\"Paul S. Randal\" \/>\n<meta property=\"article:published_time\" content=\"2008-04-07T23:07:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2013-04-03T01:12:39+00:00\" \/>\n<meta name=\"author\" content=\"Paul Randal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Paul Randal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/sql-server-2008-how-to-get-filestream-and-partitioning-to-work\/\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/sql-server-2008-how-to-get-filestream-and-partitioning-to-work\/\",\"name\":\"SQL Server 2008: How to get FILESTREAM and partitioning to work - Paul S. Randal\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#website\"},\"datePublished\":\"2008-04-07T23:07:33+00:00\",\"dateModified\":\"2013-04-03T01:12:39+00:00\",\"author\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/sql-server-2008-how-to-get-filestream-and-partitioning-to-work\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqlskills.com\/blogs\/paul\/sql-server-2008-how-to-get-filestream-and-partitioning-to-work\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/sql-server-2008-how-to-get-filestream-and-partitioning-to-work\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Server 2008: How to get FILESTREAM and partitioning to work\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#website\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/\",\"name\":\"Paul S. Randal\",\"description\":\"In Recovery...\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce\",\"name\":\"Paul Randal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0b6a266bba2f088f2551ef529293001bd73bf026bc1908b9866728c062beeeb6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0b6a266bba2f088f2551ef529293001bd73bf026bc1908b9866728c062beeeb6?s=96&d=mm&r=g\",\"caption\":\"Paul Randal\"},\"sameAs\":[\"http:\/\/3.209.169.194\/blogs\/paul\"],\"url\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/author\/paul\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SQL Server 2008: How to get FILESTREAM and partitioning to work - Paul S. Randal","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.sqlskills.com\/blogs\/paul\/sql-server-2008-how-to-get-filestream-and-partitioning-to-work\/","og_locale":"en_US","og_type":"article","og_title":"SQL Server 2008: How to get FILESTREAM and partitioning to work - Paul S. Randal","og_description":"Now we&#8217;re back from Iceland and I have a week to catch up with some content development before the MVP Summit next week and then SQL Connections the following week. One of the things I struggled with earlier in the year while writing a SQL Server 2008 training course for Microsoft was how to get [&hellip;]","og_url":"https:\/\/www.sqlskills.com\/blogs\/paul\/sql-server-2008-how-to-get-filestream-and-partitioning-to-work\/","og_site_name":"Paul S. Randal","article_published_time":"2008-04-07T23:07:33+00:00","article_modified_time":"2013-04-03T01:12:39+00:00","author":"Paul Randal","twitter_misc":{"Written by":"Paul Randal","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/sql-server-2008-how-to-get-filestream-and-partitioning-to-work\/","url":"https:\/\/www.sqlskills.com\/blogs\/paul\/sql-server-2008-how-to-get-filestream-and-partitioning-to-work\/","name":"SQL Server 2008: How to get FILESTREAM and partitioning to work - Paul S. Randal","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#website"},"datePublished":"2008-04-07T23:07:33+00:00","dateModified":"2013-04-03T01:12:39+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce"},"breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/sql-server-2008-how-to-get-filestream-and-partitioning-to-work\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/paul\/sql-server-2008-how-to-get-filestream-and-partitioning-to-work\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/sql-server-2008-how-to-get-filestream-and-partitioning-to-work\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/paul\/"},{"@type":"ListItem","position":2,"name":"SQL Server 2008: How to get FILESTREAM and partitioning to work"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#website","url":"https:\/\/www.sqlskills.com\/blogs\/paul\/","name":"Paul S. Randal","description":"In Recovery...","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlskills.com\/blogs\/paul\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce","name":"Paul Randal","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0b6a266bba2f088f2551ef529293001bd73bf026bc1908b9866728c062beeeb6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0b6a266bba2f088f2551ef529293001bd73bf026bc1908b9866728c062beeeb6?s=96&d=mm&r=g","caption":"Paul Randal"},"sameAs":["http:\/\/3.209.169.194\/blogs\/paul"],"url":"https:\/\/www.sqlskills.com\/blogs\/paul\/author\/paul\/"}]}},"_links":{"self":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/posts\/1061","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/comments?post=1061"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/posts\/1061\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/media?parent=1061"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/categories?post=1061"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/tags?post=1061"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}