如何改变列的数据类型?

primulaling 2010-05-05 04:48:55
是所有列的,不是某一列的。
...全文
267 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
hovy_yang 2011-09-02
  • 打赏
  • 举报
回复
学习了
primulaling 2010-05-05
  • 打赏
  • 举报
回复
哈,太感谢了。我用excel将n列产生n个txt文件了。就是稍微有点笨。嘿嘿!明天能交差了。
shelless 2010-05-05
  • 打赏
  • 举报
回复
表中有数据能成功?

char变varchar可以行。如果是int的变char呢。
htl258_Tony 2010-05-05
  • 打赏
  • 举报
回复
--> 生成测试数据表: [tb]
IF OBJECT_ID('[tb]') IS NOT NULL
DROP TABLE [tb]
GO
CREATE TABLE [tb] ([ID] [int],[ParentID] [int],[Name] [ntext],[Money] [int])
INSERT INTO [tb]
SELECT '1',NULL,'同业信息','50' UNION ALL
SELECT '2',NULL,'决策分析','0' UNION ALL
SELECT '3','2','客户分析','10' UNION ALL
SELECT '4','2','订单分析','20' UNION ALL
SELECT '5','2','销售分析','10' UNION ALL
SELECT '6','2','会员分析','20'
--SELECT * FROM [tb]

INSERT tb SELECT 7,3,REPLICATE('会员分析',4000),100 FROM tb

ALTER TABLE tb ALTER COLUMN [Name] NVARCHAR(4000)
GO

SELECT * FROM tb
/*
ID ParentID Name Money
----------- ----------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -----------
1 NULL 同业信息 50
2 NULL 决策分析 0
3 2 客户分析 10
4 2 订单分析 20
5 2 销售分析 10
6 2 会员分析 20
7 3 会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析 100
7 3 会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析 100
7 3 会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析 100
7 3 会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析 100
7 3 会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析 100
7 3 会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析会员分析 100

(12 行受影响)
*/
就是长度大于4000都可以测试通过。
htl258_Tony 2010-05-05
  • 打赏
  • 举报
回复
--> 生成测试数据表: [tb]
IF OBJECT_ID('[tb]') IS NOT NULL
DROP TABLE [tb]
GO
CREATE TABLE [tb] ([ID] [int],[ParentID] [int],[Name] [ntext],[Money] [int])
INSERT INTO [tb]
SELECT '1',NULL,'同业信息','50' UNION ALL
SELECT '2',NULL,'决策分析','0' UNION ALL
SELECT '3','2','客户分析','10' UNION ALL
SELECT '4','2','订单分析','20' UNION ALL
SELECT '5','2','销售分析','10' UNION ALL
SELECT '6','2','会员分析','20'
--SELECT * FROM [tb]

ALTER TABLE tb ALTER COLUMN [Name] NVARCHAR(4000)
GO

SELECT * FROM tb
/*
ID ParentID Name Money
----------- ----------- ------------------------
1 NULL 同业信息 50
2 NULL 决策分析 0
3 2 客户分析 10
4 2 订单分析 20
5 2 销售分析 10
6 2 会员分析 20

(6 行受影响)
*/
NTEXT可以改啊
primulaling 2010-05-05
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 xys_777 的回复:]
那就得换个表了,把数据倒进去,把原表删除,把新表改名
[/Quote]
照做了,还是不行,主要是由于我的每个单元格中的字符很多基本上在1000个左右,导入到sql中只显示<long text>内容根本不显示出来
永生天地 2010-05-05
  • 打赏
  • 举报
回复
那就得换个表了,把数据倒进去,把原表删除,把新表改名
primulaling 2010-05-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 htl258 的回复:]
引用 7 楼 primulaling 的回复:
由于我的数据导入的时候是ntext数据类型,但是今天发帖帮助得到的code用的是游标提取赋值都是varchar或nvarchar类型。代码不能运行。如何是好?
上面代码运行有何提示
[/Quote]

服务器: 消息 4928,级别 16,状态 1,行 1
无法更改列 'F1',因为该列是 'ntext'。
htl258_Tony 2010-05-05
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 primulaling 的回复:]
由于我的数据导入的时候是ntext数据类型,但是今天发帖帮助得到的code用的是游标提取赋值都是varchar或nvarchar类型。代码不能运行。如何是好?
[/Quote]上面代码运行有何提示
primulaling 2010-05-05
  • 打赏
  • 举报
回复
由于我的数据导入的时候是ntext数据类型,但是今天发帖帮助得到的code用的是游标提取赋值都是varchar或nvarchar类型。代码不能运行。如何是好?
htl258_Tony 2010-05-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 primulaling 的回复:]
ntext变成varchar or nvarchar
[/Quote]

declare @s nvarchar(500) 
declare c cursor for
select 'alter table ['+a.name+']'+ ' alter column ['+b.name+'] nvarchar(4000)'
from sysobjects a
join syscolumns b
on a.id=b.id
and type_name(b.xtype) in('text','ntext')
where a.xtype='U '
open c
fetch next from c into @s
while @@fetch_status=0
begin
exec(@s)
fetch next from c into @s
end
close c
deallocate c
数据库如果是>=SQL2005,把nvarchar(4000)改为nvarchar(max)
--小F-- 2010-05-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 htl258 的回复:]
参考:如何批量修改字段属性:http://blog.csdn.net/htl258/archive/2009/03/05/3961148.aspx
[/Quote]

学习
SQL77 2010-05-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 primulaling 的回复:]
ntext变成varchar or nvarchar
[/Quote]
没有直接转的,
primulaling 2010-05-05
  • 打赏
  • 举报
回复
ntext变成varchar or nvarchar
htl258_Tony 2010-05-05
  • 打赏
  • 举报
回复
参考:如何批量修改字段属性:http://blog.csdn.net/htl258/archive/2009/03/05/3961148.aspx
阿彪兄 2010-05-05
  • 打赏
  • 举报
回复
Alter table....?

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧