CREATE PROCEDURE SP_EXEC_WITH_LOG(@I_TICKETNO VARCHAR(10),@I_SQLSTR nvarchar(max))
AS
BEGIN
    DECLARE @QUOTATION_TRANSFER_STR nvarchar(max);
    SET @QUOTATION_TRANSFER_STR = REPLACE(@I_SQLSTR,'''','''''');
    BEGIN TRY    
       EXEC SP_EXECUTESQL @I_SQLSTR;  
       EXEC GPUPGRADE_LOGGING @I_TICKETNO,@QUOTATION_TRANSFER_STR,'SUCCESS',0
    END TRY
    BEGIN CATCH    
       declare @message varchar(2000);
       select @message = ERROR_MESSAGE();    
       EXEC GPUPGRADE_LOGGING @I_TICKETNO,@QUOTATION_TRANSFER_STR,@message,1
    END CATCH
END
GO

CREATE PROCEDURE UPDATE_IMAGE_TO_VARBINARYMAX
AS
BEGIN
    declare @vstr  nvarchar(1000);
    declare @vtabname  nvarchar(100);
    declare @vSchemaName  nvarchar(100);
    declare @vcolumnName nvarchar(100);
    declare c_table cursor scroll for select TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where DATA_TYPE='image' and (table_schema='gpglobal' or table_schema like 'gpcomp%');
    declare c_view  cursor scroll for select TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where DATA_TYPE='image' and table_schema ='dbo';
    declare c_small_table cursor scroll for
       select TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS
       where DATA_TYPE='varbinary'
       and CHARACTER_MAXIMUM_LENGTH=-1
       and (table_schema='gpglobal' or table_schema like 'gpcomp%')
       and TABLE_NAME not like '%_arch';

open c_table;
    fetch first from c_table into @vSchemaName,@vtabname,@vcolumnName;
    while @@fetch_status = 0
       begin
           set @vstr = '';
           set @vstr = N'ALTER TABLE '+@vSchemaName+'.'+@vtabname+' ALTER COLUMN '+@vcolumnName+'  VARBINARY(MAX)';
           print @vstr;
           exec SP_EXECUTESQL @vstr;
           fetch next from c_table into @vSchemaName,@vtabname,@vcolumnName;
       end;
    close c_table;
    deallocate c_table;

set @vSchemaName = '';
    set @vtabname = '';
    set @vcolumnName = '';
    open c_view;
    fetch first from c_view into @vSchemaName,@vtabname,@vcolumnName;
    while @@fetch_status = 0
       begin
           set @vstr = '';
           set @vstr = N'DROP VIEW ['+ @vSchemaName+'].['+@vtabname +']';
           print @vstr;
           exec SP_EXECUTESQL @vstr;
           set @vstr = '';
           set @vstr = N'CREATE VIEW ['+ @vSchemaName+'].['+@vtabname +'] AS SELECT * FROM GPGLOBAL.'+@vtabname ;
           print @vstr;
           exec SP_EXECUTESQL @vstr;
           fetch next from c_view into @vSchemaName,@vtabname,@vcolumnName;
       end;
    close c_view;
    deallocate c_view;
    
    set @vSchemaName = '';
    set @vtabname = '';
    set @vcolumnName = '';
    open c_small_table;
    fetch first from c_small_table into @vSchemaName,@vtabname,@vcolumnName;
    while @@fetch_status = 0
       begin
           set @vstr = '';
           set @vstr = N'UPDATE '+@vSchemaName+'.'+@vtabname+' SET '+@vcolumnName+' = '+@vcolumnName;
           print @vstr;
           exec SP_EXECUTESQL @vstr;
           set @vstr = N'ALTER INDEX ALL ON ' +@vSchemaName+'.'+@vtabname+ ' reorganize WITH (LOB_COMPACTION=ON)';
           print @vstr;
           exec SP_EXECUTESQL @vstr;
           fetch next from c_small_table into @vSchemaName,@vtabname,@vcolumnName;
       end;
    close c_small_table;
    deallocate c_small_table;

END
GO

CREATE PROCEDURE UPDATE_NTEXT_TO_VARCHARMAX
AS
BEGIN
    declare @vstr  nvarchar(1000);
    declare @vtabname  nvarchar(100);
    declare @vSchemaName  nvarchar(100);
    declare @vcolumnName nvarchar(100);
    declare c_table cursor scroll for select TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where DATA_TYPE='ntext' and (table_schema='gpglobal' or table_schema like 'gpcomp%');
    declare c_view  cursor scroll for select TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where DATA_TYPE='ntext' and table_schema ='dbo';
    declare c_small_table cursor scroll for
       select TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS
       where DATA_TYPE='nvarchar'
       and CHARACTER_MAXIMUM_LENGTH=-1
       and (table_schema='gpglobal' or table_schema like 'gpcomp%')
       and TABLE_NAME not like '%_arch'
       and TABLE_NAME not in(
       'GPRECL'
       ,'GPPROB'
       ,'GPCRDLOGS'
       ,'GPCUSTBLOB'
       ,'GPRECLLOG'
       ,'GPACTV'
       );

open c_table;
    fetch first from c_table into @vSchemaName,@vtabname,@vcolumnName;
    while @@fetch_status = 0
       begin
           set @vstr = '';
           set @vstr = N'ALTER TABLE '+@vSchemaName+'.'+@vtabname+' ALTER COLUMN '+@vcolumnName+' NVARCHAR(MAX)';
           print @vstr;
           exec SP_EXECUTESQL @vstr;
           fetch next from c_table into @vSchemaName,@vtabname,@vcolumnName;
       end;
    close c_table;
    deallocate c_table;

set @vSchemaName = '';
    set @vtabname = '';
    set @vcolumnName = '';
    open c_view;
    fetch first from c_view into @vSchemaName,@vtabname,@vcolumnName;
    while @@fetch_status = 0
       begin
           set @vstr = '';
           set @vstr = N'DROP VIEW ['+ @vSchemaName+'].['+@vtabname +']';
           print @vstr;
           exec SP_EXECUTESQL @vstr;
           set @vstr = '';       
           set @vstr = N'CREATE VIEW ['+ @vSchemaName+'].['+@vtabname +'] AS SELECT * FROM GPGLOBAL.'+@vtabname ;
           print @vstr;
           exec SP_EXECUTESQL @vstr;
           fetch next from c_view into @vSchemaName,@vtabname,@vcolumnName;
       end;
    close c_view;
    deallocate c_view;
    
    set @vSchemaName = '';
    set @vtabname = '';
    set @vcolumnName = '';
    open c_small_table;
    fetch first from c_small_table into @vSchemaName,@vtabname,@vcolumnName;
    while @@fetch_status = 0
       begin
           set @vstr = '';
           set @vstr = N'UPDATE '+@vSchemaName+'.'+@vtabname+' SET '+@vcolumnName+' = '+@vcolumnName;
           print @vstr;
           exec SP_EXECUTESQL @vstr;
           set @vstr = N'ALTER INDEX ALL ON ' +@vSchemaName+'.'+@vtabname+ ' reorganize WITH (LOB_COMPACTION=ON)';
           print @vstr;
           exec SP_EXECUTESQL @vstr;
           fetch next from c_small_table into @vSchemaName,@vtabname,@vcolumnName;
       end;
    close c_small_table;
    deallocate c_small_table;

END
GO
exec UPDATE_IMAGE_TO_VARBINARYMAX;
GO
exec UPDATE_NTEXT_TO_VARCHARMAX;
GO
drop PROCEDURE UPDATE_IMAGE_TO_VARBINARYMAX;
go
drop PROCEDURE UPDATE_NTEXT_TO_VARCHARMAX;
GO
SELECT * FROM gpmainuser.UPGRADE_LOG;
GO
select * from INFORMATION_SCHEMA.COLUMNS where DATA_TYPE='nvarchar' and TABLE_SCHEMA='GPcomp1'

UPDATE  gpcomp1.GARECEIPT_ARCH SET FEED_DATA = FEED_DATA;

select TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME
from INFORMATION_SCHEMA.COLUMNS i , sys.index_columns idx
where DATA_TYPE='ntext' and (table_schema='gpglobal' or table_schema like 'gpcomp%');

select  s.name,o.name,I.name,c.name,t.name
from
sys.columns c,
sys.index_columns ic ,
sys.indexes i ,
sys.objects o,
sys.schemas s,
sys.types t
where i.object_id = ic.object_id
and i.index_id = ic.index_id
and i.object_id = o.object_id
and s.schema_id = o.schema_id
and ic.column_id =c.column_id
and t.system_type_id = c.system_type_id
and (s.name ='gpglobal' or s.name like 'gpcomp%')
and o.name ='GPRECL'
and c.name = 'REMARKS'
and t.name = 'ntext'

select distinct s.name,o.name,i.name,c.name,t.name
from
sys.columns c,
sys.index_columns ic ,
sys.indexes i ,
sys.objects o,
sys.schemas s,
sys.types t
where i.object_id = ic.object_id
and i.index_id = ic.index_id
and i.object_id = o.object_id
and s.schema_id = o.schema_id
and ic.column_id = c.column_id
and ic.object_id = c.object_id
and t.system_type_id = c.system_type_id
and (s.name ='gpglobal' or s.name like 'gpcomp%')
and o.name ='GPCRDLOGS'
and t.name = 'ntext'

select * from sys.indexes
select * from sys.index_columns
select * from sys.columns
select * from sys.objects where name ='GPCRDLOGS'
select * from sys.schemas
select * from sysindexes
select * from sys.types

select * from sys.data_spaces;
select * from  sysindexes

select object_name(id) tablename,
8*reserved/1024 reservedMB,
rtrim(8*dpages/1024)+'Mb' used,
8*(reserved-dpages)/1024 unused,
8*dpages/1024-rows/1024*minlen/1024 free,rows,*
from sysindexes
where indid=1 AND object_name(id)='GPCRDLOGS'
order by reserved desc

exec sp_spaceused N'GPCOMP1.GPCRDLOGS'
exec sp_refreshview N'gpcomp1.aa'

http://connect.microsoft.com/SQLServer/feedback/details/669621/sp-refreshview-fails-for-views-that-were-created-without-explicitly-qualifying-their-schema-name

http://mitchelsellers.com/blogs/2007/07/27/determing-sql-server-table-size.aspx

http://therightstuff.de/CommentView,guid,df930155-f60f-4f56-ab33-f1352ff091a1.aspx

http://msdn.microsoft.com/en-us/library/hh245121.aspx

http://technet.microsoft.com/zh-cn/library/ms162833.aspx

http://technet.microsoft.com/zh-cn/library/ms162808%28v=sql.105%29.aspx

http://technet.microsoft.com/zh-cn/library/ms162843.aspx

http://technet.microsoft.com/zh-cn/library/ms180944.aspx

http://technet.microsoft.com/en-us/library/ms188603%28v=sql.105%29.aspx

http://blogs.msdn.com/b/sqlserverfaq/archive/2008/10/14/sql-server-can-perform-slow-after-changing-the-cost-threshold-for-parallelism.aspx

http://sqlblog.com/blogs/jonathan_kehayias/archive/2010/01/19/tuning-cost-threshold-of-parallelism-from-the-plan-cache.aspx

http://www.mssqlcity.com/Articles/Undoc/SQL2000UndocSP.htm

http://my.oschina.net/tangyu/blog/79120

http://sqlmag.com/t-sql/varbinarymax-tames-blob

http://www.poorren.com/sqlserver-2005-varcharmax-nvarcharmax-varbinarymax/

http://blog.csdn.net/xianshengsun/article/details/7657654

http://blog.csdn.net/xianshengsun/article/details/7657551

Determing SQL Server Table Size

Determing SQL Server Table Size

Upgrade Image&ntext to varbinarymax&nvarchar(max)的更多相关文章

  1. SQL 2005中char、nchar、varchar、ntext and nvarchar(max)的区别

    原文地址 MS SQL大值数据类型varchar(max).nvarchar(max).varbinary(max) 在MS SQL2005及以上的版本中,加入大值数据类型(varchar(max). ...

  2. nvarchar(MAX) 、ntext的差别

    今天在做一个项目时,程序成功向数据库插入一条数据, 插入的是一篇比较大的文章,而且还有很多样式. Id是int型,Content用的是 ntext类型的 但是当我在手动改数据库Id时出现错误: 错误源 ...

  3. sql中nvarchar(max)长度测试

    nvarchar(max)长度测试:在使用convert强制类型转化之后 文本长度可以突破8000的上限.并且nvarchar(max)的最大长度可达到2^31以下为验证SQL: Declare @A ...

  4. MS SQL大值数据类型varchar(max)、nvarchar(max)、varbinary(max)

    在MS SQL2005及以上的版本中,加入大值数据类型(varchar(max).nvarchar(max).varbinary(max) ).大值数据类型最多可以存储2^30-1个字节的数据. 这几 ...

  5. Sql server中的 nvarchar(max) 到底有多大?(转载)

    问题: SQL server中的nvarchar(max)最大的长度是4000个字吗? 如果字段的内容超过4000个字时用什么类型呢?text 还是binary?他们的最大长度是多少?比如字段放的是长 ...

  6. 关于varchar(max), nvarchar(max)和varbinary(max)

    在MS SQL2005及以上的版本中,加入大值数据类型(varchar(max).nvarchar(max).varbinary(max) ).大值数据类型最多可以存储2^30-1个字节的数据.这几个 ...

  7. SQL Server中VARCHAR(MAX)和NVARCHAR(MAX)使用时要注意的问题(转载)

    在Microsoft SQLServer2005及以上的版本中,对于varchar(n).nvarchar(n)和varbinary(n)有了max的扩展.可以使用如:varchar(max).nva ...

  8. sql中NVARCHAR(MAX) 性能和占空间分析 varchar(n),nvarchar(n) 长度性能及所占空间分析

    varchar(n),nvarchar(n) 中的n怎么解释: nvarchar(n)最多能存n个字符,不区分中英文. varchar(n)最多能存n个字节,一个中文是两个字节. 所占空间: nvar ...

  9. --查询nvarchar(max)的表和字段

    --查询nvarchar(max)的表和字段 select 'insert into #tempTabelInfo select '''+d.name+''', '''+a.name+''', max ...

随机推荐

  1. 两个List,第二个List根据第一个List排序

    /// <summary> /// 协同排序 /// </summary> /// <param name="sod"></param&g ...

  2. Java发展史之Java由来

    Java:由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称.Java语言是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由当时任职太阳微系统的 ...

  3. Word 2013双引号的BUG

    相信使用Word 2013的朋友大多碰到过这样一个双引号的bug: 问题详细描述: word2013中,打字时引号出现问题,在输入中文情况下,输入左引号为中文,输入右引号时会自动变成英文.微软自己的输 ...

  4. 【翻译】西川善司「实验做出的游戏图形」「GUILTY GEAR Xrd -SIGN-」中实现的「纯卡通动画的实时3D图形」的秘密,前篇(2)

    Lighting和Shading(2)镜面反射的控制和模拟次级表面散射技术 http://www.4gamer.net/games/216/G021678/20140703095/index_2.ht ...

  5. Linux下使用inode删除文件

    Linux 下有时候某些文件无法使用 rm 直接删除, 比如该文件的文件名含有终端不能正确显示的字符.# ls -litotal 0441511 -rw-r--r-- 1 root root 0 Ap ...

  6. by maintaining a log containing a record of each transaction’s activities - The Commit/Rollback Protocol

    Computer Science An Overview _J. Glenn Brookshear _11th Edition Before a transaction is allowed to a ...

  7. Java ArrayListSerialise

    import java.io.*; import java.util.*; //ArrayListSerialise public class A { public static void main( ...

  8. linux 不能用clock 计算sleep的时间

    http://bbs.csdn.net/topics/390558707 在Windows Sleep()占用processor time,Linux下的sleep()不占用processor tim ...

  9. 一个Delphi7的BUG

    combobox有个属性DropDownCount可以控制显示的下拉数量, 但是 在Delphi7中, TCombobox或者任何从TCustomComboBox继承下来的类, 在windows7环境 ...

  10. Bluetooth HCI介绍

    目录 1. HCI功能 2. HCI Packet 1. HCI Command 2. HCI Event 3. HCI Data 3. HCI传输层 HCI, 主机控制接口(Host Control ...