在具有 VARBINARY 列类型的 SQL 服务器数据库中查找 table/s 的 T-SQL 语法是什么?
What is the T-SQL syntax for finding table/s in my SQL Server database which has a VARBINARY column type?
我在 SQL Server 2012 上有一个数据库 运行ning,我需要找到其中具有 varbinary
列类型的 tables。
事实上,我需要检索一些存储在数据库中的扫描文件。我找到了一个名为 'ScannedDocument' 的 table,它确实有一个名为 'SCD_DOCIMAGE' 的 varbinary
列。但是,当我 运行 以下内容时:
Select * from ScannedDocument
,我在 SSMS 的输出 window 中没有得到任何结果。
我的第一个猜测是,我要查找的扫描文档并未存储在此table中。使用 varbinary
列定位所有 table 的 T-SQL 语法是什么?
此外,一旦识别出正确的 table,从该列检索文档的 T-SQL 语法是什么?
看看INFORMATION_SCHEMA.COLUMNS
Select * From INFORMATION_SCHEMA.COLUMNS where data_type='varbinary'
要下载或保存到磁盘,这可能会有所帮助Script to save varbinary data to disk
SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE data_type='varbinary'
Aaron Bertrand 有 blogged about some shortcomings in the INFORMATION_SCHEMA 个对象。
这是使用 SQL 服务器系统对象识别 varbinary 字段的查询:
SELECT OBJECT_SCHEMA_NAME(c.object_id) + '.' + OBJECT_NAME(c.object_id) AS tablename,
c.name AS columnname,
t.name + '(' + CASE
WHEN c.max_length = -1 THEN
'MAX'
ELSE
CONVERT(VARCHAR(10), c.max_length)
END + ')' AS columntype
FROM sys.columns c
INNER JOIN sys.types t
ON t.system_type_id = c.system_type_id
WHERE t.name = 'varbinary';
我在 SQL Server 2012 上有一个数据库 运行ning,我需要找到其中具有 varbinary
列类型的 tables。
事实上,我需要检索一些存储在数据库中的扫描文件。我找到了一个名为 'ScannedDocument' 的 table,它确实有一个名为 'SCD_DOCIMAGE' 的 varbinary
列。但是,当我 运行 以下内容时:
Select * from ScannedDocument
,我在 SSMS 的输出 window 中没有得到任何结果。
我的第一个猜测是,我要查找的扫描文档并未存储在此table中。使用 varbinary
列定位所有 table 的 T-SQL 语法是什么?
此外,一旦识别出正确的 table,从该列检索文档的 T-SQL 语法是什么?
看看INFORMATION_SCHEMA.COLUMNS
Select * From INFORMATION_SCHEMA.COLUMNS where data_type='varbinary'
要下载或保存到磁盘,这可能会有所帮助Script to save varbinary data to disk
SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE data_type='varbinary'
Aaron Bertrand 有 blogged about some shortcomings in the INFORMATION_SCHEMA 个对象。
这是使用 SQL 服务器系统对象识别 varbinary 字段的查询:
SELECT OBJECT_SCHEMA_NAME(c.object_id) + '.' + OBJECT_NAME(c.object_id) AS tablename,
c.name AS columnname,
t.name + '(' + CASE
WHEN c.max_length = -1 THEN
'MAX'
ELSE
CONVERT(VARCHAR(10), c.max_length)
END + ')' AS columntype
FROM sys.columns c
INNER JOIN sys.types t
ON t.system_type_id = c.system_type_id
WHERE t.name = 'varbinary';