2009-08-31 4 views
1

文字のインスタンスを見つけるのに比較的簡単な方法はありますか?または「〜」または「&」をデータベースに格納しますか?データベース内の文字のインスタンスを見つける

任意のフィールドに指定できます。どのテーブルでもかまいません。

合計400〜500個のテーブルがデータベースにあります。

答えて

1

最も簡単な方法は、すべてのテーブルのすべてのデータを一括エクスポートし、問題の文字列を検索することです。

http://msdn.microsoft.com/en-us/library/ms187042.aspx

+1

おそらく、動的SQLよりも簡単です... – gbn

+0

ありがとう、私たちは今これを試しています...私は思った以上のテーブル/データがありますので、それはしばらく時間がかかるでしょう。 – Jason

1

あなたは、SQL管理コンソールを使用して一つの大きなSQLスクリプトにデータベースをエクスポートすることができます。テキストファイルがあれば、メモ帳/ grep/etcを使うことができます。あなたが探している文字を見つけることができます。

+0

コードにはいいですが、syscommentsを検索しないのはなぜですか? – gbn

1

このコードは、データベース内の各テーブルとvarcharカラムを識別します。これは、探している文字が列に含まれている行を検索するために、各テーブルと列に対してselectステートメントを生成するために使用できます。

select o.id, o.name, c.name, t.name, t.* 
from sysobjects o 
join syscolumns c on c.id = o.id 
join systypes t on t.xtype = c.xtype 
where o.xtype = 'U' 
     and t.status = 0 
     and t.name like '%varchar' 
order by o.name, c.name 

テーブルのサイズやインデックスに応じて、これは良い考えかもしれません。

+0

これも私の最初の考えでした。すべての結果を調べるのは非常に面倒だと思われます...テーブルを含む何らかの通知を送信するクエリを実行して、一致するものが見つかると思います。助けてくれてありがとう。 – Jason

+0

はい - SELECT文を生成するのではなく、共通の表にINSERT文を生成し、表名と列名を含めます。 –

関連する問題