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 |
|
shujaatali101
Starting Member
2 Posts |
Posted - 2011-04-23 : 04:57:49
|
| Hii have a code in which i search in all TABLES for a selected value name FERRAI the code is belowSET NOCOUNT ONDECLARE @TABNAME VARCHAR(300)DECLARE @COLNAME VARCHAR(300)DECLARE @QUERY NVARCHAR(500)DECLARE @COLCOUNT INTDECLARE @TABCOUNT INTSET @TABCOUNT =0DECLARE _CURSOR CURSOR FORSELECT NAME FROM SYS.TABLES--WHERE NAME LIKE 'TAB%'OPEN _CURSORFETCH NEXT FROM _CURSOR INTO @TABNAMESET @COLCOUNT = NULLWHILE @@FETCH_STATUS = 0BEGINDECLARE _COLCUR CURSOR FORSELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TABNAMEAND DATA_TYPE IN('VARCHAR','CHAR','NVARCHAR') AND CHARACTER_MAXIMUM_LENGTH > 4OPEN _COLCURFETCH NEXT FROM _COLCUR INTO @COLNAMEWHILE @@FETCH_STATUS = 0BEGINSET @QUERY=N'SELECT @CNT=COUNT(*) FROM '+@TABNAME+' WHERE '+@COLNAME+' = ''FERRAI'''EXEC SP_EXECUTEsql @QUERY,N'@CNT INT OUTPUT',@CNT = @COLCOUNT OUTPUTPRINT @COLCOUNTIF @COLCOUNT > 0BEGINSELECT @TABNAME AS TABLENAME , @COLNAME AS COLUMNNAMEPRINT 'TABLE NAME : '+@TABNAME +' AND COLUMN NAME : '+@COLNAME + ' FOUND'ENDFETCH NEXT FROM _COLCUR INTO @COLNAMEENDCLOSE _COLCURDEALLOCATE _COLCURFETCH NEXT FROM _CURSOR INTO @TABNAMESET @TABCOUNT = @TABCOUNT + 1ENDPRINT 'TOTAL TABLE : '+CAST(@TABCOUNT AS VARCHAR)CLOSE _CURSORDEALLOCATE _CURSORi want to replace FERARRI with vairable @FIND i so replace code withSET NOCOUNT ONDECLARE @TABNAME VARCHAR(300)DECLARE @COLNAME VARCHAR(300)DECLARE @FIND VARCHAR(300)DECLARE @QUERY NVARCHAR(500)DECLARE @COLCOUNT INTDECLARE @TABCOUNT INTSET @TABCOUNT =0SET @FIND = 'FERRARI'DECLARE _CURSOR CURSOR FORSELECT NAME FROM SYS.TABLES--WHERE NAME LIKE 'TAB%'OPEN _CURSORFETCH NEXT FROM _CURSOR INTO @TABNAMESET @COLCOUNT = NULLWHILE @@FETCH_STATUS = 0BEGINDECLARE _COLCUR CURSOR FORSELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TABNAMEAND DATA_TYPE IN('VARCHAR','CHAR','NVARCHAR') AND CHARACTER_MAXIMUM_LENGTH > 4OPEN _COLCURFETCH NEXT FROM _COLCUR INTO @COLNAMEWHILE @@FETCH_STATUS = 0BEGINSET @QUERY=N'SELECT @CNT=COUNT(*) FROM '+@TABNAME+' WHERE '+@COLNAME+' = '+@FINDEXEC SP_EXECUTEsql @QUERY,N'@CNT INT OUTPUT',@CNT = @COLCOUNT OUTPUTPRINT @COLCOUNTIF @COLCOUNT > 0BEGINSELECT @TABNAME AS TABLENAME , @COLNAME AS COLUMNNAMEPRINT 'TABLE NAME : '+@TABNAME +' AND COLUMN NAME : '+@COLNAME + ' FOUND'ENDFETCH NEXT FROM _COLCUR INTO @COLNAMEENDCLOSE _COLCURDEALLOCATE _COLCURFETCH NEXT FROM _CURSOR INTO @TABNAMESET @TABCOUNT = @TABCOUNT + 1ENDPRINT 'TOTAL TABLE : '+CAST(@TABCOUNT AS VARCHAR)CLOSE _CURSORDEALLOCATE _CURSORit gives ERROR Msg 207, Level 16, State 1, Line 1Invalid column name 'FERRARI'. |
|
|
sunitabeck
Master Smack Fu Yak Hacker
5155 Posts |
|
|
shujaatali101
Starting Member
2 Posts |
Posted - 2011-04-24 : 02:35:08
|
| Thank you it really Help me........... |
 |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
|
|
|
|
|
|
|