Rah*_*hul 7 ssms sql-server-2008
小背景:
最近我通过应用来自MS链接的补丁升级了"SQL server management studio 2005" http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=7218
这样,我就可以访问最近构建的SQL Server 2008版本的DB服务器.
我在2008 Db服务器上创建了一个连接到Oracle DB的服务器链接.早些时候我没有遇到任何问题,但每当我使用服务器链接运行查询时应用管理工作室补丁如下所示
select top 10 * from [server]..DBNAME.TABLENAME
Run Code Online (Sandbox Code Playgroud)
要么
select * from [server]..DBNAME.TABLENAME
Run Code Online (Sandbox Code Playgroud)
我收到了错误
执行批处理时发生错误.错误消息是:列colname上的GetBytes尝试无效'.GetBytes函数只能用于Text,NText或Image类型的列."
但是,如果我将查询更改为
select top 10 col1,col2 from [server]..DBNAME.TABLENAME
Run Code Online (Sandbox Code Playgroud)
要么
select distinct col1, col2, col3 from [server]..DBNAME.TABLENAME
Run Code Online (Sandbox Code Playgroud)
它运行正常没有任何问题.
我不确定,但我相信它与Management Studio...有关...某些设置Management Studio可能导致这个问题.
有没有人有任何想法或以前遇到过这个问题.你能帮忙吗?
编辑:如果我使用sqlcmd它运行问题查询运行正常.
谢谢.
Gil*_*ter 12
在将SQL 2005管理工作室用于SQL 2008服务器并查询其中包含DATE日期类型的表之前,我遇到了这个错误.
从本质上讲,它意味着SSMS无法理解返回给它的一种列数据类型.您说SELECT*不起作用,但SELECT col1,col2,col3可以.表中有多少列?尝试逐列扩展选择列,直到找到令管理工作室混乱的列.然后,您可以在select子句中使用CAST将其转换为Management Studio可以理解的内容.
这里可能发生的是其中一个列从SQL 2008返回为DATE,TIME,DATETIME2或其他一个新的SQL 2008数据类型.虽然Management Studio 2005可以连接到SQL 2008服务器,但它无法理解新数据类型并且无法显示它们.
这是Management Studio的一个限制.