swallow.pa
سه شنبه 05 دی 1391, 13:44 عصر
با سلام
به لينك زير رفنم و اسكريپت اصلاح كد پيج رو دانلود كردم
http://barnamenevis.org/showthread.php?324714-%D8%A7%D8%B5%D9%84%D8%A7%D8%AD-%D8%AD%D8%B1%D9%88%D9%81-%DA%A9-%D9%88-%DB%8C-%D8%AF%D8%B1-%D8%AF%D8%A8%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3&p=1426137#post1426137
خب كدها اينه
[CODE]
--سلام.
--این SP رو اجرا کنید و در یک اسکریپت بنویسید:
--Exec ChangeCodePage
--تمام جداولتون اصلاح خواهند شد.
--اگر جدول خاصی مد نظرتون هست نام اون رو جلوی نام SP بنویسید.
ALTER procedure [dbo].[ChangeCodePage]
@TblName varchar(100) = ''
as
set @TblName = ISNULL(@TblName, '')
select ROW_NUMBER() over (order by TBLs.TABLE_NAME, COLs.COLUMN_NAME) Row, TBLs.TABLE_NAME TblName, COLs.COLUMN_NAME ColName
into #t
from INFORMATION_SCHEMA.TABLES TBLs
join INFORMATION_SCHEMA.COLUMNS COLs on TBLs.TABLE_NAME = COLs.TABLE_NAME
where TABLE_TYPE = 'BASE TABLE'
and DATA_TYPE in ('char', 'nchar', 'varchar', 'nvarchar')
and (TBLs.TABLE_NAME = @TblName or @TblName = '')
declare @x varchar(1000)
create table #errors(Error varchar(1000))
declare @i int
set @i = 0
while 1 = 1
begin
set @i = (select top 1 Row from #t where Row > @i)
if @i is null
break
select @x = 'update [' + TblName + '] set [' + ColName + '] = Replace( Replace( Replace([' + ColName + '], nchar(1603), nchar(1705)), nchar(1610), nchar(1740)), nchar(1609), nchar(1740))'
from #t
where Row = @i
begin try
exec(@x)
end try
begin catch
insert into #errors
values(char(13) + char(10) + 'ERROR: ' + char(13) + char(10) + @x + char(13) + char(10))
end catch
end
if @TblName = ''
select *
from #errors
print 'CODE PAGE GHANGING DONE!'
drop table #t
drop table #errors
[CODE]
حالا مشكل من اينه كه نمي دونم چطور اونو اجرا كنم
بعنوان مثال من يك حدول person دارم كه فيلد هاي name - family ي . ك را مي خواهم اصلاح كنم
چطوري اين كار رو انجام بدم
ممنون
به لينك زير رفنم و اسكريپت اصلاح كد پيج رو دانلود كردم
http://barnamenevis.org/showthread.php?324714-%D8%A7%D8%B5%D9%84%D8%A7%D8%AD-%D8%AD%D8%B1%D9%88%D9%81-%DA%A9-%D9%88-%DB%8C-%D8%AF%D8%B1-%D8%AF%D8%A8%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3&p=1426137#post1426137
خب كدها اينه
[CODE]
--سلام.
--این SP رو اجرا کنید و در یک اسکریپت بنویسید:
--Exec ChangeCodePage
--تمام جداولتون اصلاح خواهند شد.
--اگر جدول خاصی مد نظرتون هست نام اون رو جلوی نام SP بنویسید.
ALTER procedure [dbo].[ChangeCodePage]
@TblName varchar(100) = ''
as
set @TblName = ISNULL(@TblName, '')
select ROW_NUMBER() over (order by TBLs.TABLE_NAME, COLs.COLUMN_NAME) Row, TBLs.TABLE_NAME TblName, COLs.COLUMN_NAME ColName
into #t
from INFORMATION_SCHEMA.TABLES TBLs
join INFORMATION_SCHEMA.COLUMNS COLs on TBLs.TABLE_NAME = COLs.TABLE_NAME
where TABLE_TYPE = 'BASE TABLE'
and DATA_TYPE in ('char', 'nchar', 'varchar', 'nvarchar')
and (TBLs.TABLE_NAME = @TblName or @TblName = '')
declare @x varchar(1000)
create table #errors(Error varchar(1000))
declare @i int
set @i = 0
while 1 = 1
begin
set @i = (select top 1 Row from #t where Row > @i)
if @i is null
break
select @x = 'update [' + TblName + '] set [' + ColName + '] = Replace( Replace( Replace([' + ColName + '], nchar(1603), nchar(1705)), nchar(1610), nchar(1740)), nchar(1609), nchar(1740))'
from #t
where Row = @i
begin try
exec(@x)
end try
begin catch
insert into #errors
values(char(13) + char(10) + 'ERROR: ' + char(13) + char(10) + @x + char(13) + char(10))
end catch
end
if @TblName = ''
select *
from #errors
print 'CODE PAGE GHANGING DONE!'
drop table #t
drop table #errors
[CODE]
حالا مشكل من اينه كه نمي دونم چطور اونو اجرا كنم
بعنوان مثال من يك حدول person دارم كه فيلد هاي name - family ي . ك را مي خواهم اصلاح كنم
چطوري اين كار رو انجام بدم
ممنون