Sql-Server
如何從視圖中解密列的名稱?
我不得不處理第三方數據庫,我試圖讓所有列在視圖中使用,但我對它們進行了加密,
例如:我沒有得到為什麼?
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')
有什麼辦法可以解密它們嗎?
對我來說看起來像是使用者定義的數據類型。
通過查看
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