다음을 사용하여 SQL Server의 열 크기를 변경하려고합니다.
ALTER TABLE [dbo].[Address]
ALTER COLUMN [Addr1] [nvarchar](80) NULL
의 길이 Addr1
는 원래 40
.
실패하여 다음 오류가 발생합니다.
The object 'Address_e' is dependent on column 'Addr1'.
ALTER TABLE ALTER COLUMN Addr1 failed because one or more objects access
this column.
나는 그것을 읽으려고 노력했으며 일부 뷰 가이 열을 참조하고 SQL Server가 실제로 오류를 일으킨 열을 삭제하려고 시도하는 것 같습니다.
Address_e
이전 DB 관리자가 생성 한 뷰입니다.
열 크기를 변경할 수있는 다른 방법이 있습니까?
답변
뷰는 WITH SCHEMABINDING 옵션을 사용하여 생성 될 수 있으며 이는 이러한 변경을 방지하기 위해 명시 적으로 연결되었음을 의미합니다. 스키마 바인딩이 작동하여 이러한 뷰를 깨는 것을 방지 한 것 같습니다. 운이 좋은 날입니다. 데이터베이스 관리자에게 연락하여 데이터베이스에 미치는 영향을 확인한 후 변경을 요청하십시오.
에서 MSDN :
스키마 바인딩
뷰를 기본 테이블 또는 테이블의 스키마에 바인딩합니다. SCHEMABINDING이 지정되면 뷰 정의에 영향을주는 방식으로 기본 테이블을 수정할 수 없습니다. 수정 될 테이블에 대한 종속성을 제거 하려면 먼저보기 정의 자체를 수정하거나 삭제해야합니다 .
답변
ALTER TABLE [table_name] ALTER COLUMN [column_name] varchar(150)
답변
SQL Server 2008에서 “복제 된 테이블의 열 너비를 늘리기”를 원하는 사람이 있으면 ” replicate_ddl=1
” 의 속성을 변경할 필요가 없습니다 . 아래 단계를 따르십시오.
- SSMS 열기
- 게시자 데이터베이스에 연결
- 실행 명령-
ALTER TABLE [Table_Name] ALTER COLUMN [Column_Name] varchar(22)
- 구독자에서 볼 수있는 것과 동일한 변경 사항 (트랜잭션이 복제 됨) 에서
varchar(x)
까지 열 너비를 늘varchar(22)
립니다. 따라서 복제를 다시 초기화 할 필요가 없습니다.
이것이 그것을 찾는 모든 사람들에게 도움이되기를 바랍니다.
답변
이 링크보기
T-SQL 명령을 사용하여 기본 제약 조건으로 MS SQL Server 테이블 열 크기 조정 또는 수정
이러한 SQL Server 문제에 대한 해결책은
테이블 열에서 DEFAULT 제약 조건을 삭제하거나 비활성화합니다.
테이블 열 데이터 유형 및 / 또는 데이터 크기 수정.
SQL 테이블 열에서 기본 제약 조건을 다시 생성하거나 활성화합니다.
안녕
답변
다음은 내가 사용중인 프로그램 버전에서 작동하는 것입니다. 귀하에게도 작동 할 수 있습니다.
나는 그것을 수행하는 지시와 명령을 놓을 것입니다. class는 테이블의 이름입니다. 이 방법으로 테이블 자체를 변경합니다. 검색 프로세스에 대한 수익 만이 아닙니다.
테이블 클래스보기
select * from class
전체 레이블에 맞게 FacID ( “faci”로 표시) 및 classnumber ( “classnu”로 표시) 열의 길이를 변경합니다.
alter table class modify facid varchar (5);
alter table class modify classnumber varchar(11);
차이점을 보려면 다시 표를보십시오.
select * from class;
(차이를 보려면 명령을 다시 실행하십시오)
이것은 실제 테이블을 좋게 변경하지만 더 좋습니다.
추신 : 나는 명령에 대한 메모로 이러한 지침을 작성했습니다. 이것은 테스트가 아니지만 도움이 될 수 있습니다. 🙂
답변
열 데이터 정렬을 확인하십시오. 이 스크립트는 데이터 정렬을 테이블 기본값으로 변경할 수 있습니다. 현재 데이터 정렬을 스크립트에 추가합니다.