紧急求助高手!!_mask_from_v2??

sungongchang 2014-11-05 02:15:03
各位大神,各位高手!

本人在此求助一个问题。
数据库中每一个表格莫名其妙多了一列:_mask_from_v2
由于多了这么个东西,我在用自己的应用软件导出XML格式时,显示多了一行, <xs:element name="_MASK_TO_V2" type="xs:base64Binary" minOccurs="0" />

由于这个原因,无法进行数据的正常导入。

哪位大神知道有什么方法可以解决吗?能够批量删除的方法?删除之后会不会对数据库有什么影响?
...全文
677 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
还在加载中灬 2014-11-07
  • 打赏
  • 举报
回复
DECLARE @SQL VARCHAR(MAX)
SET @SQL=''
SELECT @SQL=@SQL+'ALTER TABLE ['+T4.name+'] DROP CONSTRAINT ['+T1.name+'] '
FROM
	SYS.SYSINDEXES T1 JOIN SYS.SYSINDEXKEYS T2 ON T1.id=T2.id AND  T1.indid=T2.indid
	JOIN SYS.SYSCOLUMNS T3 ON T1.id=T3.id AND T2.colid=T3.colid
	JOIN SYS.SYSOBJECTS T4 ON T1.id=T4.id
WHERE T3.name='_mask_from_v2'
EXEC(@SQL)
SET @SQL=''
SELECT @SQL=@SQL+'ALTER TABLE ['+T1.name+'] DROP COLUMN ['+T2.name+'] '
FROM SYS.SYSOBJECTS T1 JOIN SYS.SYSCOLUMNS T2 ON T1.id=T2.id AND T2.name='_mask_from_v2'
EXEC(@SQL)
试下,应该可以,先在测试数据库,建个测试表,取个列名_mask_from_v2,并加个索引试下
sungongchang 2014-11-07
  • 打赏
  • 举报
回复
Ky_min 大神您好! 非常感谢您的回复 我刚才试过了,确实是因为有索引才导致不成功,我尝试手动删除一个索引之后,就可以了。 但问题是有100多个表格,手动太麻烦。 有没方法用脚本批量删除索引呢?
ACMAIN_CHM 2014-11-06
  • 打赏
  • 举报
回复
这里是 mysql
还在加载中灬 2014-11-06
  • 打赏
  • 举报
回复
你这个列还是有索引的,虽然还是有办法,但我想这列应该是有用的,还是别删吧,到时出错就麻烦了 你换方式吧,在进行数据的正常导入时,注意匹配
sungongchang 2014-11-06
  • 打赏
  • 举报
回复


这位大哥,出现如图所示的报警,有什么方法不?
还在加载中灬 2014-11-06
  • 打赏
  • 举报
回复
如果对你来说确实没用,就删掉呗
DECLARE @SQL VARCHAR(MAX)
SET @SQL=''
SELECT @SQL=@SQL+'ALTER TABLE ['+T1.name+'] DROP COLUMN ['+T2.name+'] '
FROM SYS.SYSOBJECTS T1 JOIN SYS.SYSCOLUMNS T2 ON T1.id=T2.id AND T2.name='_MASK_TO_V2'
EXEC(@SQL)
你得想好了才能执行上面的语句 另外,有没有问下客户,为啥会有呢?是客户加的吗?还有,你们程序是怎么处理XML的,多了一列就不行了?难不成按数字索引读取XML的?
还在加载中灬 2014-11-06
  • 打赏
  • 举报
回复
_mask_from_v2 后面这个不一样的,不需要改什么东西 然后,前面可以加上
USE 数据库名 
GO
sungongchang 2014-11-06
  • 打赏
  • 举报
回复
这位大哥,脚本好像是一样的啊??? 这几行脚本语句里边我需要更改吗?比如把数据库名字加上去
还在加载中灬 2014-11-06
  • 打赏
  • 举报
回复
那就
DECLARE @SQL VARCHAR(MAX)
SET @SQL=''
SELECT @SQL=@SQL+'ALTER TABLE ['+T1.name+'] DROP COLUMN ['+T2.name+'] '
FROM SYS.SYSOBJECTS T1 JOIN SYS.SYSCOLUMNS T2 ON T1.id=T2.id AND T2.name='_mask_from_v2'
EXEC(@SQL)
你先想好了,万一反悔,这步的逆操作就只有还原数据库最方便了
卖水果的net 版主 2014-11-06
  • 打赏
  • 举报
回复
你还是问好了吧,看看是不是有业务调整,一下子删完了,再出了问题,你就麻烦了。
sungongchang 2014-11-06
  • 打赏
  • 举报
回复
这位大哥,您好! 我参照您的脚本语句进行了测试,没有删掉。表里边还是有_mask_from_v2 能否帮检查一下? 谢谢
sungongchang 2014-11-05
  • 打赏
  • 举报
回复
没人回复,自己顶一下
sungongchang 2014-11-05
  • 打赏
  • 举报
回复
SQL server 2008
ACMAIN_CHM 2014-11-05
  • 打赏
  • 举报
回复
什么数据库?
sungongchang 2014-11-05
  • 打赏
  • 举报
回复
补充一下:这个数据库是客户所在服务器的数据库,经过同步软件同步到我本机。会不会是同步软件造成的呢?如果是有什么方法可以弥补吗?

34,590

社区成员

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

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