![]() |
|
File table in SQL Server 2012 - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40) +--- قسم : قسم مقالات SQL SERVER (http://vb4arb.com/vb/forumdisplay.php?fid=84) +--- الموضوع : File table in SQL Server 2012 (/showthread.php?tid=1217) |
File table in SQL Server 2012 - عمر المستشار - 10-12-13 File table in SQL Server 2012 السلام عليكم ورحمة الله وبركاتة موضوعنا اليوم يتكلم عن ال File Table وماهي هذة الميزة القادمة الينا مع الSQL 2012 ال File table هو اخاصية حفظ الملفات الى جانب الملفات الخاصة بقاعدة البيانات مما يتيح الينا سهولة التعامل معها ولاتؤثر على كبر حجم قاعة البيانات والوقت المستغرف في عملية اخذ ال Backup حيث لدينا امكانية ال backup على شكل ملفات منفصلة وهو تعتبر الاصدار الجديد او المكمل من ال FileStreem الذي كان موجود في الاصدارات القديمة في ال SQL Server ان الفائدة الرئيسية لل File table هي ان التطبيقات ال Windows API تستطيع التعامل والوصول الى الملفات بسولة تمامة كما تمكن المستخدم من التعامل مع الملفات كما سنرى من خلال الامثلة والشرح كما يمكن التعامل مع الملفات عن طريق لغة ال TSQL لندخل في صلب الموضوع وتوظح الطريقة العملية لذالك الخطوة الاولى هو ان يتنصيب ال File Stream كما في الخطوات التالية نذهب ال SQl Server Configuration Tools الى ال Server الذي نريد ان ننصب في ال FileStreem نتبع الصورة التالية ثم نقوم بعملية ال restart لل Server نقوم بتفعيل ال File Stream الموجود في ال SQL Server عن طريق الكود التالي EXEC sp_configure filestream_access_level, 2
RECONFIGURE GO اما الان سوف اقوم بخلق ملف في البارتشن D على سبيل المثال من خلال TSQL ومن الممكن خلقة بشكل يدوي لايؤثر EXEC sp_configure ‘show advanced options’, 1
GO RECONFIGURE GO – قبلو تنفيذ ايعاز ال XP_CMDshell. EXEC sp_configure ‘xp_cmdshell’, 1 GO RECONFIGURE GO Exec Xp_cmdshell ‘if not Exist D:\FileTable MkDir D:\FileTable’; الان سوف اقوم بخلق قاعدة بيانات تحوي File Group من نوع File Stream CREATE DATABASE FileTableDB
ألان نقوم بخلق ال File table في قاعدة البيانات الخاصة بناON PRIMARY (Name = FileTableDB, FILENAME = ‘D:\FileTable\FTDB.mdf’), FILEGROUP FTFG CONTAINS FILESTREAM (NAME = FileTableFS, FILENAME=’D:\FileTable\FS’) LOG ON (Name = FileTableDBLog, FILENAME = ‘D:\FileTable\FTDBLog.ldf’) WITH FILESTREAM (NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N’FileTableDB’); GO USE FileTableDB
GO CREATE TABLE FileTableTb AS FileTable WITH (FileTable_Directory = ‘FileTableTb_Dir’); GO لنشاهد الان الجدول المنشء لان نقوم بوضع بياناتنا اما بطريقة ال Copy & past عن طريق right Click على الجدول ومن ثم الضغط على ال Explorer ومن ثم وضع الملفات التي تريد حفظها فيه وشاهد النتائج من خلال استخدام ال ال Select للجدول
SELECT *
FROM [FileTableDB].[dbo].[FileTableTb] ويمكننا ان نضع الملفات داخل الفولدر هذا عن طريق ال TSQL كما في الكود التالي
INSERT INTO [dbo].[FileTableTb]
([name],[file_stream]) SELECT ‘SQL_Server_2012_Licensing_Reference_Guide.pdf’, * FROM OPENROWSET(BULK N’d:\SQL_Server_2012_Licensing_Reference_Guide.pdf’, SINGLE_BLOB) AS FileData GO اتمنى ان يكون الشرح واضح دعواتكم اذا امكن اخواني الكرام |