첫째, 데이터베이스 데이터 정렬 들어간 상태 것은 테이블에 기존 열 영향을주지 않고 새로 만든 테이블과 컬럼에 영향을 미칠 것입니다. 데이터베이스에서 새 개체를 만들 때 사용할 기본 데이터 정렬입니다.
그래서 기존 열을 모두 찾고 현재 데이터 정렬을 업데이트해야합니다.
SQL 커서를 사용하여 모든 테이블과 열을 쿼리하고 특정 유형 또는 열 이름에 대한 데이터 정렬을 업데이트 할 수 있습니다. 예를함으로써
:
1)) 미래의 객체
USE master;
GO
ALTER DATABASE databasename COLLATE French_CI_AI ;
GO
2 데이터 정렬을 변경 특정 열
ALTER TABLE tablenameX ALTER COLUMN LastName varchar(100) COLLATE French_CI_AI NULL
ALTER TABLE tablenameY ALTER COLUMN FirstName varchar(100) COLLATE French_CI_AI NULL
3 수동으로 열 정렬을 변경) SQL 스크립트를 생성 커서가있는 상태로
콜라주를 변경할 열을 결정해야합니다 에. 유형, 이름 또는 특정 테이블 일 수 있습니다.
예제에서 caracter 유형을 찾고 바꾸려면 시작 커서를 참조하십시오. 조합은 예상하고있다 *
http://www.codeproject.com/Articles/302405/The-Easy-way-of-changing-Collation-of-all-Database
declare @CollationName as nvarchar = 'Latin1_General_CI_AS'
declare @tablename as nvarchar(100) = ''
declare @sqltext as nvarchar(100) = ''
declare @columnname as nvarchar(200) = ''
declare @DataType as nvarchar(100) = ''
declare @CharacterMaxLen as int = 0
declare @IsNullable as bit = 0
DECLARE MyTableCursor Cursor
FOR
SELECT * from information_schema.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
OPEN MyTableCursor
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE MyColumnCursor Cursor
FOR
SELECT COLUMN_NAME,DATA_TYPE, CHARACTER_MAXIMUM_LENGTH,
IS_NULLABLE from information_schema.columns
WHERE table_name = @TableName AND (Data_Type LIKE '%char%'
OR Data_Type LIKE '%text%') AND COLLATION_NAME <> @CollationName
ORDER BY ordinal_position
Open MyColumnCursor
FETCH NEXT FROM MyColumnCursor INTO @ColumnName, @DataType,
@CharacterMaxLen, @IsNullable
WHILE @@FETCH_STATUS = 0
BEGIN
SET @SQLText = 'ALTER TABLE ' + @TableName + ' ALTER COLUMN [' + @ColumnName + '] ' +
@DataType + '(' + CASE WHEN @CharacterMaxLen = -1 THEN 'MAX' ELSE @CharacterMaxLen END +
') COLLATE ' + @CollationName + ' ' +
CASE WHEN @IsNullable = 'NO' THEN 'NOT NULL' ELSE 'NULL' END
PRINT @SQLText
FETCH NEXT FROM MyColumnCursor INTO @ColumnName, @DataType,
@CharacterMaxLen, @IsNullable
END
CLOSE MyColumnCursor
DEALLOCATE MyColumnCursor
FETCH NEXT FROM MyTableCursor INTO @TableName
END
CLOSE MyTableCursor
DEALLOCATE MyTableCursor
당신이 확인 * 열 위치 :
은 INFORMATION_SCHEMA.COLUMNS당신이 게시물을 참조 할 수 있습니다 구별 DATA_TYPE을 선택? 데이터베이스를 변경해도 기존의 모든 열은 변경되지 않습니다. –
열 자체에 데이터 정렬이 있다는 것을 알지 못했습니다. 나는 그것을 검사 할 것이다.감사합니다. –
그것은 하나의 열과 함께 작동했기 때문에 이제해야 할 일은 모두 제가 사용하는 모든 열을 통과하는 것입니다. 많은 것은 아닙니다. 감사. 당신은 물론 신용을 원한다면 대답으로 의견을하실 수 있습니다! –