Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
NguyenL71
Posting Yak Master
228 Posts |
Posted - 2008-10-17 : 11:31:08
|
| Hi,I have files names and need to extract the db name from backup file names. Details show below.Thank you in advance.Ex: NDXT_PLANDATA_TX_FULL_DB.bak --> NDXT_PLANDATA_TX only NDXT_PLANDATA_TX_DB.bak --> NDXT_PLANDATA_TX QNXT_PLANDATA_TX_Log.BAK --> QNXT_Plandata_tx DROP TABLE [TestTable]goCREATE TABLE [dbo].[TestTable]( [bckup_dt] [varchar](25) NULL, [size_dir] [int] NULL, [bkup_file_name] [varchar](35) NULL, [database_name] [varchar](45) NULL)GOINSERT TestTable VALUES ('10/16/2008 11:28 PM', 18420848, 'NCDT_ProdDATA_OH_DB.BAK', NULL)INSERT TestTable VALUES ('10/17/2008 07:30 AM', 9425484, 'QNTX_PLANDATA_OH_Log.BAK', NULL)INSERT TestTable VALUES ('10/16/2008 11:36 PM', 328116, 'MyCeproc_UT_DB.BAK', NULL)INSERT TestTable VALUES ('10/16/2008 11:32 PM', 416673, 'MyCeproc_UT_TPA_REB_DB.BAK', NULL)INSERT TestTable VALUES ('10/17/2008 02:42 AM', 46305845, 'QNXT_ELIGPROC_WA_DB.BAK', NULL)INSERT TestTable VALUES ('10/15/2008 02:40 AM', 63106755, 'QNXT_ELIGPROC_WA_FULL_DB.BAK', NULL)INSERT TestTable VALUES ('10/16/2008 04:00 PM', 203248, 'MNXT_PLANDATA_TX_DIFF_DB.bak', NULL)INSERT TestTable VALUES ('10/12/2008 09:36 PM', 3030369, 'NDXT_PLANDATA_TX_FULL_DB.BAK', NULL)INSERT TestTable VALUES ('10/12/2008 09:36 PM', 3030369, 'NDXT_PLANDATA_TX_DB.BAK', NULL)INSERT TestTable VALUES ('10/17/2008 07:30 AM', 2572046, 'QNXT_PLANDATA_TX_Log.BAK', NULL)GO SELECT * FROM TestTable GO-- Result want:bckup_dt size_dir bkup_file_name database_name------------------------- ----------- ----------------------------------- ------------------10/16/2008 11:28 PM 18420848 NCDT_ProdDATA_OH_DB.BAK NCDT_ProdDATA_OH10/17/2008 07:30 AM 9425484 QNTX_PLANDATA_OH_Log.BAK QNTX_PLANDATA_OH10/16/2008 11:36 PM 328116 MyCeproc_UT_DB.BAK MyCeproc_UT_DB10/16/2008 11:32 PM 416673 MyCeproc_UT_TPA_REB_DB.BAK MyCeproc_UT_TPA_REB10/17/2008 02:42 AM 46305845 QNXT_ELIGPROC_WA_DB.BAK QNXT_ELIGPROC_WA10/15/2008 02:40 AM 63106755 QNXT_ELIGPROC_WA_FULL_DB.BAK QNXT_ELIGPROC_WA10/16/2008 04:00 PM 203248 MNXT_PLANDATA_TX_DIFF_DB.bak MNXT_PLANDATA_TX10/12/2008 09:36 PM 3030369 NDXT_PLANDATA_TX_FULL_DB.BAK NDXT_PLANDATA_TX10/17/2008 07:30 AM 2572046 QNXT_PLANDATA_TX_Log.BAK QNXT_PLANDATA_TX |
|
|
hanbingl
Aged Yak Warrior
652 Posts |
Posted - 2008-10-17 : 11:33:39
|
| Database names always end with a state name right? |
 |
|
|
NguyenL71
Posting Yak Master
228 Posts |
Posted - 2008-10-17 : 12:03:00
|
quote: Originally posted by hanbingl Database names always end with a state name right?
Not neccessary end with state name. Example:bckup_dt size_dir bkup_file_name database_name------------------------- ----------- ----------------------------------- -------------10/16/2008 11:32 PM 416673 MyCeproc_UT_TPA_REB_DB.BAK NULLI like see db like this. Thanks.MyCeproc_UT_TPA_REB |
 |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2008-10-17 : 12:15:49
|
| SELECT LEFT(PARSENAME(bkup_file_name,2),CASE WHEN PATINDEX('%_DB',PARSENAME(bkup_file_name,2))>0 THEN PATINDEX('%_DB',PARSENAME(bkup_file_name,2))-1 WHEN WHEN PATINDEX('%_LOG',PARSENAME(bkup_file_name,2))>0 THEN PATINDEX('%_LOG',PARSENAME(bkup_file_name,2))-1 ELSE LEN(PARSENAME(bkup_file_name,2)) END) |
 |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
Posted - 2008-10-18 : 08:40:36
|
| If all dbnames has suffix _db or _log, thenSELECT left(bkup_file_name,len(bkup_file_name)-charindex('_',reverse(bkup_file_name)))FROM TestTableMadhivananFailing to plan is Planning to fail |
 |
|
|
|
|
|
|
|