SQL Server 2008-R2 データベースがあり、そのデータを別の SQL Server 2008-R2 データベースに移行しています。データベースには 400 を超えるテーブルが含まれていますが、BLOB 形式で保存された画像とドキュメントを含むすべてのテーブルを検索し、それらのアイテムを別のデータベース (SQL 2008-R2) に配置する必要があります。
次のスクリプトを使用して、Binary、Image、Varbinary、Varchar(MAX)、nVarchar(MAX) のいずれかを持つすべてのテーブルを見つけました。
SELECT
OBJECT_NAME(c.id) as TableName,
c.name as ColumnName,
c.colid As ColumnOrder,
st.name as UserType,
bt.name as BaseType
FROM
dbo.syscolumns c
INNER JOIN dbo.systypes st ON st.xusertype = c.xusertype
INNER JOIN dbo.systypes bt ON bt.xusertype = c.xtype
WHERE
OBJECTPROPERTY(c.id,'ISTABLE') = 1
AND((st.name = 'nvarchar' AND c.length = 8000) OR
(st.name = 'varchar' AND c.length = 8000) OR
(st.name in('sql_variant','varbinary','binary','image')))
ORDER BY
OBJECT_NAME(c.id),
c.colid
しかし、これはリストを半分にするだけです。これらのテーブルごとに SELECT ステートメントを作成する以外に、このデータベースで BLOB ファイルを見つける簡単な方法はありますか?