Created
March 24, 2013 12:19
-
-
Save kenee/5231681 to your computer and use it in GitHub Desktop.
varchar转nvarchar
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
/*--将所有的表中,数值类型由char,varchar改为nchar,nvarchar | |
--*/ | |
/*--调用示例: | |
exec p_set | |
--*/ | |
--修改的存储过程 | |
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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment