XMe*_*i01 4 sql-server datatypes view system-tables
我必须处理第三方数据库,我试图获取视图中使用的所有列,但我对它们进行了加密,
例如:而不是获取int
我NUMERO_SALARIE
知道TNumSal
为什么?
DECLARE @TableViewName NVARCHAR(128)
SET @TableViewName=N'DP_SALARIE'
SELECT b.name AS ColumnName, c.name AS DataType, b.max_length AS Length
FROM sys.all_objects a
INNER JOIN sys.all_columns b
ON a.object_id=b.object_id
INNER JOIN sys.types c
ON b.user_type_id=c.user_type_id
WHERE a.Name=@TableViewName
AND a.type IN ('U','V')
Run Code Online (Sandbox Code Playgroud)
有什么办法可以解密它们吗?
对我来说看起来像是用户定义的数据类型。
通过查看sys.types
和连接列system_type_id
并进一步定义system_type_id
应该等于user_type_id
查询应该为您提供底层系统类型名称。
所以你的代码应该是这样的
DECLARE @TableViewName NVARCHAR(128)
SET @TableViewName=N'DP_SALARIE'
SELECT b.name AS ColumnName, c.name AS DataType, b.max_length AS Length
FROM sys.all_objects a
INNER JOIN sys.all_columns b
ON a.object_id=b.object_id
INNER JOIN sys.types c
ON b.system_type_id=c.system_type_id
WHERE a.Name=@TableViewName
AND a.type IN ('U','V')
AND c.system_type_id = c.user_type_id
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
293 次 |
最近记录: |