/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter table ['+d.name 
      
       +'] alter column ['+a.name+'] n' 
      
       +b.name+'('+cast(a.length*2 as varchar)+')' 
      
      FROM syscolumns a 
      
       left join systypes b on a.xtype=b.xusertype 
      
       inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties' 
      
      where 
      
       b.name in('char','varchar') 
      
       and 
      
       not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
      
       SELECT name FROM sysindexes WHERE indid in( 
      
       SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
      
       ))) --主鍵不能修改 
      
      order by d.name,a.name 
      
      
      declare @sql varchar(1000) 
      
      open tb 
      
      fetch next from tb into @sql 
      
      while @@fetch_status = 0 
      
      begin 
      
       exec(@sql) 
      
       fetch next from tb into @sql 
      
      end 
      
      close tb 
      
      deallocate tb 
      
      go
      
    
/*--將所有的表中,數值類型由char,varchar改為nchar,nvarchar 的存儲過程
      --鄒建 2004.02(引用請保留此信息)--*/ 
      
      
      /*--調用示例: 
      
       exec p_set 
      
      --*/ 
      
      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
      
      drop procedure [dbo].[p_set] 
      
      GO
      
      
      create procedure p_set 
      
      as 
      
      declare tb cursor for 
      
      SELECT sql='alter tab 
    
發表評論
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
					微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
					

      
      
評論