将Geography数据类型列转换为NVARCHAR

时间:2012-02-02 15:41:18

标签: database sql-server-2008 tsql

我的数据类型Geography数据库中有一列我要转换为varchar。

我正在使用以下查询来执行此操作...

- 1:Microsoft.SqlServer.Types.dll问题。

ALTER TABLE RetailerStore ALTER COLUMN Location VARCHAR(50)

但是,我收到错误消息

  

Msg 257,Level 16,State 3,Line 1
  不允许从数据类型地理到varchar的隐式转换。使用CONVERT函数运行此查询。

有没有人遇到这个问题,如果有的话,他们知道解决问题的方法吗?

2 个答案:

答案 0 :(得分:1)

没有隐式转换。列中是否有数据?如果是这样,请在尝试更改列类型之前将其全部设置为NULL。或者,您可以删除并重新创建列。

请注意,从地理位置到文本表单的显式转换 - 您可以使用STAsText将空间类型转换为文本表示形式。

使用ALTER TABLE来DROP和ADD:

ALTER TABLE RetailerStore DROP COLUMN Location;
ALTER TABLE RetailerStore ADD Location VARCHAR(50) NULL;

答案 1 :(得分:0)

首先从表中删除列:

ALTER TABLE RetailerStore DROP COLUMN Location;

然后使用所需的数据类型和范围再次添加该列,如下所示:

ALTER TABLE RetailerStore ADD Location VARCHAR(100) NULL;