SQLServer创建脚本的BUG,非常奇怪的问题

dxpjj 2007-03-30 03:10:08
首先创建一个结构表如下(表名:aaaa)
姓名 varchar 50
性名 varchar 50

在企业管理器中生SQL脚本如下:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[aaaa]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[aaaa]
GO
CREATE TABLE [dbo].[aaaa] (
[姓名] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[性名] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

后来我增加了一个字段,如学历(text 16),保存后再次生成脚本如下:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[aaaa]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[aaaa]
GO
CREATE TABLE [dbo].[aaaa] (
[姓名] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[性名] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[学历] [text] COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
注意该脚本中多了TEXTIMAGE_ON [PRIMARY]

现在如果将学历字段删除了,也就是将text类型的字段删除了,再生成脚本如下:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[aaaa]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[aaaa]
GO
CREATE TABLE [dbo].[aaaa] (
[姓名] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[性名] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

此时实际表结构中已经不含有text或image类型的字段了,而脚本中却含有ON [PRIMARY] TEXTIMAGE_ON [PRIMARY],如果此时执行此脚本会报错,
服务器: 消息 1709,级别 16,状态 1,行 1
当表中没有 text、ntext 或 image 列时,无法使用 TEXTIMAGE_ON。
而实际上我的表中已没有text、ntext 或 image类型的字段了。
望高手门指点迷津!!!
...全文
226 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
lisiyong 2007-03-30
  • 打赏
  • 举报
回复
UP!

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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