http://geekswithblogs.net/jakob/archive/2009/06/03/tfs-team-build-2010-running-unit-tests.aspx
http://msmvps.com/blogs/rfennell/archive/2010/08/05/getting-code-coverage-working-on-team-build-2010.aspx
Vincent Thavonekham, CEO FactoVia, Microsoft Regional Director & MVP Azure 1/ Founder FactoVia 2/ Coach / Consuting : Microsoft Azure, DevOps, ALM TFS 3/ Looking for a challenging job with great conditions ? or need training ? Contact me via https://www.linkedin.com/in/thavo/ or https://twitter.com/vThavo
Tuesday, August 31, 2010
Monday, August 30, 2010
Server Centric statistics : IIS Log
Here is one the the many free tools to analyse IIS Logs :
- Indihiang 1.0 (x86) - Web Log Analyzer
Quite good for a free tool that help us start on analysing IIS Logs
Shows all the HTTP status
Access of the various pages (also notice the Silverlight *.XAP)
The time required to request the pages
Sunday, August 29, 2010
TOP 10 SCRUM Advantages
Obviously, I will not state that SCRUM is 100% the best of the best project management ever. It obviously hides some drawbacks. However, because the advantages are so numerous, the overcome is really good. I would like to emphasis only 10 of them.
Bear in mind that if you ask 100 persons a top-10 list, you will have 100 answers; furthermore, ask me to perform this exercise in a few weeks time, my list will surely be different!
- Freedom of the team, since the team works without any bosses. As a result, the team has to be very responsible and work tightly together to solve problems in a challenging environment. The only limit to the freedom is the User Stories to implement at the end of the sprint, and the sprint’s objective to reach,
- KISS - “Keep It Simple Stupid! ”: Scrum rules are simple to understand. You don’t necessarily have to study and understand why it works, just follow the rules! Obviously, it is best to study project management theories and leadership concepts either to apply the rules with even more convictions, or to go beyond them once mastered. In theory (I don’t fully agree on that point), any decisions is done on a KISS bases,
- The capacity to improve ourselves with retrospective and brainstorming sessions. This allows us to state and agree that we are bad in such or such area, then take actions to change completely one or more processes. Any process belongs to the team, and it is its duty to improve or suppress it. No boss knows better the problem that the extended team (i.e. including the PO, the SM and the Team),
- I have done a few projects in AGILE, but what I find excellent with SCRUM is that it provides a worldwide proven project management pattern. Moreover, the best practices are basic enough to allow us: To apply them strictly, AND to add creativity so that it could be applicable to solve various problems,
- My aim is not to list all SCRUM’s definition, but if I had to pick up 2 great stuff in it would be : Rely on Time box nearly everywhere: In many occasions on an AGILE project (without SCRUM), when everything is important, some tasks are endless and we tried to cheet our deadlines, and add a bit more, and another team member a wee bit more, and so on. As a result, we resulted in the very well-known issue, that everyone knows : we were late, and the quality was bad !! By applying Timebox most of the time AND defining the rules beforehand with the entire team member ("definition of Done"), it is easier to stop it due timescale. As long as the ScrumMaster plays its role of leader so that the rules are applied.
- I just knew AGILE before starting a project with SCRUM. What I was really astonished by is its ability to predict the future, based on our previous sprints' experience!! Obviously, no rule is perfect and it is only estimations, but we managed to have a 6 months plan for instance, and identified risks. For example, a “Release Burnup chart” is simple, but it enables us to take important decisions few months in advance, and inform the project board and sponsors well ahead.
- It is a humble project management: no bosses, no experts, beginners are welcome. Personally, I found that later point bizarre and I doubted it on that point before trying it, then changed my mind. In fact, in our SCRUM project generated so much motivation and “helpfulness” that “beginner” and “experts” could work in harmony with efficiency. In addition, holidays or the turnover within our team was less a catastrophy due to the sharing of the information (eg. pair programming).
- The team is “self-organized” hence many decisions and tasks could be done in parallel: well, in fact, don’t forget that the ScrumMaster is here to lead the way, and although he do give any orders, a good leadership could indirectly tell what to do!
- I was surprised that, on quite a big project, our team was able to work properly with such a few emails sent!! In fact, we found out that most of our communication is done orally.
. emails are used when a fair amount of information has to be communicated and when a quick answer was required. In this case, those emails were followed by oral communication anyway. This is particularly true when you could have email server problems: Once, I found out only after 5 days that my inbox email were down, because on one hand we were often and on the other hand because my outbox email still worked.
. Documents in a common repository (such as Sharepoint) are used when large documents are to be shared. Never send those documents by email, just its link. - Last but not least, we are just happy to work in such a friendly conditions, as long as retrospectives/feedbacks sessions are performed when something goes wrong!
Another major drawback, is that the tester is always required to catch us up and rewrite its GUI tests, so that the Software Factory is useful. As opposed to the ideal world where you write only one big GUI test according a detailed specification document (that would always change anyway in the real world !).
The good news is that, because the customer and the sponsor where strongly involved in the product's creation and could play with it, they were “sort of!!” happy to grant us more budget to perform some extra-iterations.
Labels:
agile experience,
Project Management,
SCRUM
Friday, August 20, 2010
Command line : Combine old style deployment with TFS 2010
Here is an old style batch command line (remember thoses days with MS-DOS 6).
We can still combine a batch with the brand TFS2010 and Silverlight:
Note: Introduced in SQL 2005, you could use the command sqlcmd insead of osql used below (osql is older).
-- ECHO SILVERLIGHT UNIT TEST NUMBER 1
We can still combine a batch with the brand TFS2010 and Silverlight:
Note: Introduced in SQL 2005, you could use the command sqlcmd insead of osql used below (osql is older).
@ECHO OFF
CLS
rem Check if the parameter %1 allows the access to the proper folder
DIR \\myTFSBuildServer\TFSDropBuild\GC-in\%1\_PublishedWebsites\myProject.Server.Web\*.*
CLS
IF %ERRORLEVEL% == 1 GOTO GatedCheckInVersionNotSpecified
rem -------------------------------------------------------
rem RUNS ALL SILVERLIGHT UNIT TESTS
rem -------------------------------------------------------
-- ECHO Running the Silverlight Unit Tests on your machine before the deployment
CD ..\Tests\UnitTests
-- ECHO SILVERLIGHT UNIT TEST NUMBER 1
CD ..\..\..\Projects\Tests\UnitTests\myProject.Client.Tests
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\msbuild /t:test
CD ..\..\Deployment
rem -------------------------------------------------------
rem CHECK IF ALL SILVERLIGHT UNIT TESTS PASSED
rem -------------------------------------------------------
CHOICE /C:YN Did all the Silverlight UnitTests passed
IF ERRORLEVEL==2 GOTO SilverlightUTfailed rem n (no)
IF ERRORLEVEL==1 GOTO SilverlightUTpassed rem y (yes)
:SilverlightUTpassed rem We can deploy
CLS
ECHO -----------------------------------------------------------
ECHO START : DEPLOYMENT of the Database and the C# code
ECHO -----------------------------------------------------------
ECHO 1. Drops ALL TABLES of myProject for the SQL instance of the TFS integration serveur
rem On détruit toutes les tables de myProject sur l'instance SQL pour le serveur d'intégration TFS
osql -U myUserLogin -P myPassword -S MY_SQL_SERVER\MY_SQL_INSTANCE -i ..\SQL\Drop_ALL_Tables_of_myProject.sql
CLS
osql -U myUserLogin -P myPassword -S MY_SQL_SERVER\MY_SQL_INSTANCE -i ..\SQL\Drop_ALL_Tables_of_myProject.sql
PAUSE
ECHO 2. CREATION OF THE EMPTY STRUCTURE
osql -U myUserLogin -P myPassword -S MY_SQL_SERVER\MY_SQL_INSTANCE -i ..\..\Projects\Sql\myEntityFrameworkThing.edmx.sql
rem -Q "ALTER DATABASE myProject SET ANSI_NULL_DEFAULT ON"
CLS
ECHO DONE : CREATION OF THE EMPTY STRUCTURE
PAUSE
ECHO 3. CREATION OF THE DATABASE STRUCTURE AND THE DATA
rem ~ ~ ~ ~ ~ ~ ~ ~ W A R N I N G A T T E N T I O N ~ ~ ~ ~ ~ ~ ~ ~
rem ~ in order not to have the accent's bug, you have to "save as" the script below in Notepad
rem ~ and change the encoding to "unicode"
osql -U myUserLogin -P myPassword -S MY_SQL_SERVER\MY_SQL_INSTANCE -Q "USE [myProject]"
osql -U myUserLogin -P myPassword -S MY_SQL_SERVER\MY_SQL_INSTANCE -i ..\SQL\ProductManager.Populate.Parcours.sql -o LogPopulate.txt
osql -U myUserLogin -P myPassword -S MY_SQL_SERVER\MY_SQL_INSTANCE -i ..\SQL\Insert_Blocs_Labels.sql -o LogPopulateBlocsLabels.txt
rem 4. (Hack - Waiting for myProject Product Designer) Temporarily remove the Name of ALL SCREENS so that they becomes a template
rem because a template has no name
osql -U myUserLogin -P myPassword -S MY_SQL_SERVER\MY_SQL_INSTANCE -Q "UPDATE Screens SET Name=NULL"
rem 5. If required, call a SCRIPT to ATTACH extra BEHAVIORS on the screen
ECHO 6. DEPLOY the code and the binaries, and create a log file containing the name of the deployed version
CLS
ECHO BACKUP of the previous version
set T=%time:~0,5%
SET backupDir=\\myTFSBuildServer\myFolder\Backups\%1.%T::=-%
ECHO The backup folder is "%backupDir%".
MD %backupDir%
PAUSE
XCOPY \\myTFSBuildServer\myFolder\Web\*.* %backupDir% /E
PAUSE
ECHO 6. DEPLOY the code and the binaries, and create a log file containing the name of the deployed version
ECHO (except the list of files in FilesToIgnore.txt such as web.Config)
XCOPY \\myTFSBuildServer\TFSDropBuild\GC-in\%1\_PublishedWebsites\myProject.Server.Web\*.* \\myTFSBuildServer\myFolder\Web /E /W /Y /EXCLUDE:FilesToIgnore.txt
rem Gets the Zip file so that it can be extracted below
COPY \\myTFSBuildServer\TFSDropBuild\GC-in\%1\_PublishedWebsites\myProject.Server.Web\ClientBin\myProject.xap myProject_Log.zip
rem COPY the TRACE file and unzip the ServiceReferences.ClientConfig file from myProject.xap
COPY \\myTFSBuildServer\TFSDropBuild\GC-in\%1\_PublishedWebsites\myProject.Server.Services.WebProbe\Trace\WebProbe.aspx \\myTFSBuildServer\myFolder\Web\Trace\
PKUNZIP myProject_Log.zip ServiceReferences.ClientConfig
rem Due to the fact that PkZip is old, we have to rename the extracted file
REN SERVICER.CLI ServiceReferences.ClientConfig
COPY ServiceReferences.ClientConfig \\myTFSBuildServer\myFolder\Web\Trace
ECHO This file is auto-generated by the deployed gated checkin.> DeployedVersion_%1.log
COPY DeployedVersion_%1.log \\myTFSBuildServer\myFolder\Web\Trace
rem Clean up the mess
DEL myProject_Log.zip
DEL ServiceReferences.ClientConfig
PAUSE
rem END of the deployment, we can quit
ECHO -----------------------------------------------------------
ECHO END : DEPLOYMENT of the Database and the C# code
ECHO READY to use
ECHO http://myServer/myFolder/Web/StaticDemo_Accueil.aspx
ECHO -----------------------------------------------------------
GOTO END
:SilverlightUTfailed rem AN ERROR occured and at least one Silverlight Unit Test FAILED
CLS
ECHO -----------------------------------------------------------
ECHO Silverlight Unit Test FAILED :
ECHO You are NOT allowed to deploy on the myFolder server
ECHO Please correct the error, check-in and try again.
ECHO -----------------------------------------------------------
GOTO END
:GatedCheckInVersionNotSpecified
CLS
ECHO -----------------------------------------------------------
ECHO Please specify the name of the gated check-in to deploy
ECHO for example :
ECHO Only_for_the_CSharpTeam_DeployInto_myFolder.bat GC-in_20000429.12
ECHO OR the folder
ECHO \\myTFSBuildServer\TFSDropBuild\GC-in\%1\_PublishedWebsites\myProject.Server.Web\
ECHO does not exists
ECHO -----------------------------------------------------------
GOTO END
:END
Labels:
Batch,
Project Management,
SQL_tips,
TFS
Sunday, August 15, 2010
Activating and configuring SQL server 2008 FileStream
I have been using this feature for a while, but apparently a bug due to a Windows Update appeared, making this taks quite difficule.
I wanted to post my exact SCRIPT T-sql that worked fine (issued from a copy/paste, so no possible typo error - may be a HTML conversion can occur).
Here you go :
------
-- OBJECT Enable and Configure Filstream
I wanted to post my exact SCRIPT T-sql that worked fine (issued from a copy/paste, so no possible typo error - may be a HTML conversion can occur).
Here you go :
------
-- OBJECT Enable and Configure Filstream
-- AUTHOR : Vincent THAVONEKHAM, according to the MSDN post below
-- DATE : 2010.08.15
-- Docs :
-- Reference MSDN (Published: October 2008) :
http://msdn.microsoft.com/en-us/library/cc949109(SQL.100).aspx
--
-- Prerequisites : . Destroy any previous [documentsFileStream]
Database to run this script
-- . Add the AD accout NETWORK SERVICE with all access to the folder
-- D:\Program Files (x86)\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL
-- 1 – enable FILESTREAM for Transact-SQL access only
-- 2 – enable FILESTREAM for Transact-SQL and Win32 streaming
access
-- Specify pathname of the directory that will be the root of the data container
-- Reminder : The folder D:\Program Files (x86)\Microsoft SQL
Server\MSSQL10.MSSQLSERVER\MSSQL
-- MUST have the AD account 'NETWORK SERVICE' with full access
-- else you will have the error:
FILENAME = 'D:\Program Files (x86)\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\FSDATA')
TO FILEGROUP FileStreamGroup1;
GO
-- The following query is just to ensure everything went OK on the creation
-- of the file group storage called FILESTREAM_GRP.
m.type_desc,
g.name AS [filegroup_name],
m.name AS [file_name],
m.physical_name
FROM
sys.master_files m
INNER
JOIN sys.filegroups g
ON m.data_space_id = g.data_space_id
WHERE
database_id = DB_ID();
GO
-- 1 ROWS PRIMARY documentsFileStream D:\Program Files
(x86)\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\documentsFileStream.mdf
-- 65537 FILESTREAM FileStreamGroup1 FSGroup1File D:\Program
Files (x86)\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\FSDATA
--
-- moreover
--
-- in the folder D:\Program Files (x86)\Microsoft SQL
Server\MSSQL10.MSSQLSERVER\MSSQL\FSDATA
-- you should have (if you have the right to see them), the
following folder and file respectively :
-- $FSLOG
-- filestream.hdr
-- DATE : 2010.08.15
-- Docs :
-- Reference MSDN (Published: October 2008) :
http://msdn.microsoft.com/en-us/library/cc949109(SQL.100).aspx
--
-- Prerequisites : . Destroy any previous [documentsFileStream]
Database to run this script
-- . Add the AD accout NETWORK SERVICE with all access to the folder
-- D:\Program Files (x86)\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL
USE [master]
GO
-- Set the filestream_access_level configuration option
-- 0 – disable FILESTREAM support for this instance-- 1 – enable FILESTREAM for Transact-SQL access only
-- 2 – enable FILESTREAM for Transact-SQL and Win32 streaming
access
-- (Transact-SQL and Win32 streaming access is
Enabled)
Enabled)
EXEC
sp_configure filestream_access_level,
2;
GOsp_configure filestream_access_level,
2;
RECONFIGURE;
GOPRINT '==> SQL 2008 SHOULD REPLY :'
PRINT '==> L''option de configuration ''filestream
access level'' est passée de 2 à 2. Pour installer, exécutez l''instruction
RECONFIGURE.'
access level'' est passée de 2 à 2. Pour installer, exécutez l''instruction
RECONFIGURE.'
-- CREATION OF THE DATABASE FOR THE FILESTREAM
CREATE
DATABASE [documentsFileStream]
ON PRIMARY
DATABASE [documentsFileStream]
ON PRIMARY
( NAME = N'documentsFileStream',
FILENAME = N'D:\Program Files (x86)\Microsoft SQL
Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\documentsFileStream.mdf',
FILENAME = N'D:\Program Files (x86)\Microsoft SQL
Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\documentsFileStream.mdf',
SIZE
= 3072KB , FILEGROWTH = 1024KB )
= 3072KB , FILEGROWTH = 1024KB )
LOG ON
( NAME = N'documentsFileStream_log',
FILENAME = N'D:\Program Files (x86)\Microsoft SQL
Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\documentsFileStream_log.ldf',
FILENAME = N'D:\Program Files (x86)\Microsoft SQL
Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\documentsFileStream_log.ldf',
SIZE= 1024KB , FILEGROWTH = 10%)
GO
ALTER
DATABASE [documentsFileStream]
SET COMPATIBILITY_LEVEL = 100
DATABASE [documentsFileStream]
SET COMPATIBILITY_LEVEL = 100
GO
ALTER
DATABASE [documentsFileStream]
SET ANSI_NULL_DEFAULT
OFF
DATABASE [documentsFileStream]
SET ANSI_NULL_DEFAULT
OFF
GO
ALTER
DATABASE [documentsFileStream]
SET ANSI_NULLS OFF
DATABASE [documentsFileStream]
SET ANSI_NULLS OFF
GO
ALTER
DATABASE [documentsFileStream]
SET ANSI_PADDING
OFF
DATABASE [documentsFileStream]
SET ANSI_PADDING
OFF
GO
ALTER
DATABASE [documentsFileStream]
SET ANSI_WARNINGS OFF
DATABASE [documentsFileStream]
SET ANSI_WARNINGS OFF
GO
ALTER
DATABASE [documentsFileStream]
SET ARITHABORT OFF
DATABASE [documentsFileStream]
SET ARITHABORT OFF
GO
ALTER
DATABASE [documentsFileStream]
SET AUTO_CLOSE OFF
DATABASE [documentsFileStream]
SET AUTO_CLOSE OFF
GO
ALTER
DATABASE [documentsFileStream]
SET AUTO_CREATE_STATISTICS ON
DATABASE [documentsFileStream]
SET AUTO_CREATE_STATISTICS ON
GO
ALTER
DATABASE [documentsFileStream]
SET AUTO_SHRINK OFF
DATABASE [documentsFileStream]
SET AUTO_SHRINK OFF
GO
ALTER
DATABASE [documentsFileStream]
SET AUTO_UPDATE_STATISTICS ON
DATABASE [documentsFileStream]
SET AUTO_UPDATE_STATISTICS ON
GO
ALTER
DATABASE [documentsFileStream]
SET CURSOR_CLOSE_ON_COMMIT OFF
DATABASE [documentsFileStream]
SET CURSOR_CLOSE_ON_COMMIT OFF
GO
ALTER
DATABASE [documentsFileStream]
SET CURSOR_DEFAULT GLOBAL
DATABASE [documentsFileStream]
SET CURSOR_DEFAULT GLOBAL
GO
ALTER
DATABASE [documentsFileStream]
SET CONCAT_NULL_YIELDS_NULL OFF
DATABASE [documentsFileStream]
SET CONCAT_NULL_YIELDS_NULL OFF
GO
ALTER
DATABASE [documentsFileStream]
SET NUMERIC_ROUNDABORT OFF
DATABASE [documentsFileStream]
SET NUMERIC_ROUNDABORT OFF
GO
ALTER
DATABASE [documentsFileStream]
SET QUOTED_IDENTIFIER OFF
DATABASE [documentsFileStream]
SET QUOTED_IDENTIFIER OFF
GO
ALTER
DATABASE [documentsFileStream]
SET RECURSIVE_TRIGGERS OFF
DATABASE [documentsFileStream]
SET RECURSIVE_TRIGGERS OFF
GO
ALTER
DATABASE [documentsFileStream]
SET DISABLE_BROKER
DATABASE [documentsFileStream]
SET DISABLE_BROKER
GO
ALTER
DATABASE [documentsFileStream]
SET AUTO_UPDATE_STATISTICS_ASYNC OFF
DATABASE [documentsFileStream]
SET AUTO_UPDATE_STATISTICS_ASYNC OFF
GO
ALTER
DATABASE [documentsFileStream]
SET DATE_CORRELATION_OPTIMIZATION OFF
DATABASE [documentsFileStream]
SET DATE_CORRELATION_OPTIMIZATION OFF
GO
ALTER
DATABASE [documentsFileStream]
SET PARAMETERIZATION SIMPLE
DATABASE [documentsFileStream]
SET PARAMETERIZATION SIMPLE
GO
ALTER
DATABASE [documentsFileStream]
SET READ_WRITE
DATABASE [documentsFileStream]
SET READ_WRITE
GO
ALTER
DATABASE [documentsFileStream]
SET RECOVERY FULL
DATABASE [documentsFileStream]
SET RECOVERY FULL
GO
ALTER
DATABASE [documentsFileStream]
SET MULTI_USER
DATABASE [documentsFileStream]
SET MULTI_USER
GO
ALTER
DATABASE [documentsFileStream]
SET PAGE_VERIFY CHECKSUM
DATABASE [documentsFileStream]
SET PAGE_VERIFY CHECKSUM
GO
USE [documentsFileStream]
GO
IF NOT EXISTS (SELECT name FROM sys.filegroups WHERE is_default=1 AND name = N'PRIMARY') ALTER DATABASE [documentsFileStream] MODIFY
FILEGROUP [PRIMARY]
DEFAULT
FILEGROUP [PRIMARY]
DEFAULT
GO
PRINT '==> SQL 2008 SHOULD REPLY NOTHING; just the the query ran successfully'
-- ADD THE FILESTREAM PART : Create the FileGroup for FileStream
USE [documentsFileStream]
GO
ALTER
DATABASE [documentsFileStream]
ADD FILEGROUP FileStreamGroup1 CONTAINS FILESTREAM;
DATABASE [documentsFileStream]
ADD FILEGROUP FileStreamGroup1 CONTAINS FILESTREAM;
GO
PRINT
'==> SQL 2008 SHOULD REPLY NOTHING; just the the query ran successfully'
'==> SQL 2008 SHOULD REPLY NOTHING; just the the query ran successfully'
-- Specify pathname of the directory that will be the root of the data container
-- NOTE: On your harddrive, DO NOT create the final folder FSDATA
-- SQL srv will automatically create it with the command below-- Reminder : The folder D:\Program Files (x86)\Microsoft SQL
Server\MSSQL10.MSSQLSERVER\MSSQL
-- MUST have the AD account 'NETWORK SERVICE' with full access
-- else you will have the error:
-- CREATE FILE a rencontré l'erreur du système
d'exploitation 5(failed to retrieve text for this error. Reason: 15100) en
essayant d'ouvrir ou de créer le fichier physique 'D:\Program Files
(x86)\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\FSDATA'.
d'exploitation 5(failed to retrieve text for this error. Reason: 15100) en
essayant d'ouvrir ou de créer le fichier physique 'D:\Program Files
(x86)\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\FSDATA'.
USE [documentsFileStream]
GOALTER
DATABASE [documentsFileStream]
ADD FILE (
NAME = FSGroup1File,DATABASE [documentsFileStream]
ADD FILE (
FILENAME = 'D:\Program Files (x86)\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\FSDATA')
TO FILEGROUP FileStreamGroup1;
GO
PRINT
'==> SQL 2008 SHOULD REPLY NOTHING; just the the query ran successfully'
'==> SQL 2008 SHOULD REPLY NOTHING; just the the query ran successfully'
-- The following query is just to ensure everything went OK on the creation
-- of the file group storage called FILESTREAM_GRP.
USE [documentsFileStream];
GOSELECT
m.file_id,m.type_desc,
g.name AS [filegroup_name],
m.name AS [file_name],
m.physical_name
FROM
sys.master_files m
INNER
JOIN sys.filegroups g
ON m.data_space_id = g.data_space_id
WHERE
database_id = DB_ID();
GO
PRINT
'==> SQL 2008 SHOULD show you 2 rows (at least). Check the T-SQL comments for more info'
-- YOU SHOULD HAVE 2 ROWS, such as :'==> SQL 2008 SHOULD show you 2 rows (at least). Check the T-SQL comments for more info'
-- 1 ROWS PRIMARY documentsFileStream D:\Program Files
(x86)\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\documentsFileStream.mdf
-- 65537 FILESTREAM FileStreamGroup1 FSGroup1File D:\Program
Files (x86)\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\FSDATA
--
-- moreover
--
-- in the folder D:\Program Files (x86)\Microsoft SQL
Server\MSSQL10.MSSQLSERVER\MSSQL\FSDATA
-- you should have (if you have the right to see them), the
following folder and file respectively :
-- $FSLOG
-- filestream.hdr
Subscribe to:
Posts (Atom)