我們有時候會需要查詢資料庫中包含某字段的所有的表,去進行update,這時就可以用下面的SQL來實作:
select object_name(id) objName,Name as colName
from syscolumns
where (name like'%此次寫需要查詢的字段名稱%')
and id in(select id from sysobjects where xtype='u')
order by objname
;
當然也可以使用遊标,把查詢出來的Table串接起來,如下:
1 DECLARE @COLNAMELIKE NVARCHAR(100)
2 DECLARE @OBJNAME NVARCHAR(100)
3 DECLARE @COLNAME NVARCHAR(100)
4 DECLARE @VALUE NVARCHAR(100)
5 DECLARE @SQL NVARCHAR(MAX)
6
7 SET @COLNAMELIKE='%POLICYNUMBER%'
8 SET @VALUE='MSH-CCIC-GEP-Plan1-13530'
9
10 DECLARE CUR CURSOR FOR
11 select object_name(id) objName,Name as colName from syscolumns
12 where (name like @COLNAMELIKE)
13 and id in(select id from sysobjects where xtype='u')
14 order by objname
15
16 OPEN CUR
17 FETCH NEXT FROM CUR INTO @OBJNAME,@COLNAME
18 WHILE @@fetch_status = 0
19 BEGIN
20 SET @SQL=' SELECT * FROM + ' @OBJNAME + ' WHERE ' + @COLNAME + '=''' + @VALUE + ''' '
21 exec @SQL
22 FETCH NEXT FROM CUR INTO @OBJNAME,@COLNAME
23 END
24 CLOSE CUR
25 DEALLOCATE CUR
如果您看了本篇部落格,覺得對您有所收獲,請點選右下角的
[推薦]如果您想轉載本部落格,
請注明出處如果您對本文有意見或者建議,歡迎留言
感謝您的閱讀,請關注我的後續部落格