CREATE PROC p_ToUnicode @type tinyint=0 --修改方式,0=仅查询可修改情况,1=仅所有列可修改时才修改,2=修改可修改列,报告不可修改列 AS SET NOCOUNT ON --查询非unicode列转换为unicode列的可行性 SELECT TableName=o.name,FieldName=c.name, FieldType=t.name+N'('+CAST(c.prec as varchar)+N')' +CASE WHEN c.isnullable=1 THEN N'' ELSE N' NOT' END +N' NULL', NoChangeCause=CAST(STUFF( CASE WHEN COLUMNPROPERTY(c.id,c.name,N'IsComputed')=1 THEN N',计算列' ELSE N'' END +CASE WHEN c.cdefault=0 THEN N'' ELSE N',列具有默认值' END +CASE WHEN EXISTS( SELECT * FROM sysindexkeys idxk,sysindexes idx WHERE idxk.id=c.id AND idxk.colid=c.colid AND idxk.id=idx.id AND idxk.indid=idx.indid AND idx.indid NOT IN(0,255) AND INDEXPROPERTY(idx.id,idx.name,N'IsAutoStatistics')=0) THEN N',列被主键、唯一键、索引、STATISTICS引用' ELSE N'&#
SQL学习---将所有的char,varchar改为nchar,nvarchar
最新推荐文章于 2024-05-03 03:32:38 发布
创建存储过程p_ToUnicode,用于检查并修改SQL Server 2005数据库中char和varchar列到nchar和nvarchar。根据参数,可以查询转换可能性、只修改符合条件的列或报告不可修改的原因。存储过程首先查找所有非Unicode列,然后根据指定条件进行转换,同时展示无法转换的列及其原因。
摘要由CSDN通过智能技术生成