在链接服务器中查找列数据类型

问题描述 投票:0回答:2

我刚刚开始开发一个新项目,其中数据存储在链接服务器中。我必须向暂存环境中的表添加新列,该列已存在于链接服务器中的相同表名下。

我已将数据转储到临时表中,但数据类型为小数、整数和数字的所有列都在临时数据库中转换为浮点数。另外,当我尝试访问 information_schema 或 sys.columns 以获得低于错误的元数据时。有什么解决方法可以查看链接服务器中表列的数据类型吗?

select * from openquery(LINKEDSERVER,'select * from information_schema.columns')

错误:

OLE DB provider "MSDASQL" for linked server "LINKEDSERVER" returned message "[LINKEDSERVER][ODBC 64bit driver][OpenAccess SDK SQL Engine]Base table:columns not found.[10129]".
Msg 7321, Level 16, State 2, Line 45
An error occurred while preparing the query "select * from information_schema.columns" for execution against OLE DB provider "MSDASQL" for linked server "LINKEDSERVER". 

提前致谢。

sql-server t-sql linked-server
2个回答
4
投票

如果您可以查询链接服务器,则以下操作将起作用:

select
*
from    [LinkedServerInstanceHere].[DatabaseOnLinkedServerHere].information_schema.columns

只需在 [ ] 中填写您的详细信息...

我刚刚测试了它,它在我这边有效。

希望这有帮助。


0
投票

我用过这个:


    EXEC sp_columns_ex [ @table_server = ] 'table_server' -- linked server name
        [ , [ @table_catalog = ] 'table_catalog' ]   -- "database"
        [ , [ @table_schema = ] 'table_schema' ]   -- schema, like dbo, or xyz
        [ , [ @table_name = ] 'table_name' ]   
        [ , [ @column_name = ] 'column' ]   
        [ , [ @ODBCVer = ] 'ODBCVer' ]

我找到了这个解决方案在这里

© www.soinside.com 2019 - 2024. All rights reserved.