programing

SQL Server의 스키마 바인딩 보기에서 참조하는 열 크기 변경

showcode 2023. 4. 20. 23:26
반응형

SQL Server의 스키마 바인딩 보기에서 참조하는 열 크기 변경

다음을 사용하여 sql 서버의 열 크기를 변경하려고 합니다.

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 관리자가 작성한 보기입니다.

기둥 크기를 변경할 수 있는 다른 방법이 있나요?

ALTER TABLE [table_name] ALTER COLUMN [column_name] varchar(150)

뷰는 WITH SCHEMABIND 옵션을 사용하여 작성될 수 있습니다.이는 이러한 변경을 방지하기 위해 명시적으로 배선되어 있음을 의미합니다.계략이 먹혀들어 시야를 깨는 걸 막았나 보네, 운 좋은 날인가?데이터베이스 관리자에게 문의하여 데이터베이스에 대한 영향을 확인한 후 변경 작업을 수행하도록 요청하십시오.

MSDN에서:

스키마바인딩

뷰를 기본 테이블의 스키마에 바인딩합니다.SCHEMABIND를 지정하면 뷰 정의에 영향을 미치는 방법으로 기본 테이블을 변경할 수 없습니다.뷰 정의 자체를 수정하거나 삭제하여 변경할 테이블의 종속성을 제거해야 합니다.

SQL Server 2008에서 "복제된 테이블의 열 너비 증가"를 원하는 사용자는 "의 속성을 변경할 필요가 없습니다.replicate_ddl=1". 아래 단계를 따르기만 하면 됩니다.

  1. SSMS를 열다
  2. 게시자 데이터베이스에 연결
  3. run 명령어 --ALTER TABLE [Table_Name] ALTER COLUMN [Column_Name] varchar(22)
  4. 열 너비가 다음에서 늘어납니다.varchar(x)로.varchar(22)서브스크라이버에 표시되는 것과 같은 변경(트랜잭션이 복제되었습니다).리플리케이션을 재초기화할 필요가 없습니다.

이것이 그것을 찾는 모든 사람들에게 도움이 되기를 바랍니다.

이 링크를 참조해 주세요.

T-SQL 명령을 사용하여 기본 제약 조건으로 MS SQL Server 테이블 열 크기 조정 또는 변경

이러한 SQL Server 문제에 대한 솔루션은 다음과 같습니다.

테이블 열에서 DEFAULT 제약 조건을 삭제 또는 비활성화합니다.

테이블 열 데이터 유형 및/또는 데이터 크기 수정.

SQL 테이블 열에서 기본 제약 조건을 다시 만들거나 활성화합니다.

안녕.

사용하고 있는 프로그램의 버전은 다음과 같습니다.고객님께도 도움이 될 수 있습니다.

명령어와 명령어를 입력하면 됩니다.class는 테이블의 이름입니다.이 방법을 사용하여 표에서 자체를 변경합니다.단순히 검색 과정에서 반환되는 것만이 아닙니다.


테이블 클래스를 표시하다

select * from class

전체 레이블에 맞도록 열 FacID("faci") 및 클래스 번호("classnu")의 길이를 변경합니다.

alter table class modify facid varchar (5);

alter table class modify classnumber varchar(11);

테이블을 다시 표시하여 차이점을 확인하다

select * from class;

(명령어를 다시 실행하여 차이를 확인합니다.)


이렇게 하면 실제 테이블은 영원히 바뀌지만 더 좋게 바뀌게 됩니다.

추신: 명령어 메모로 이 지시사항을 작성했습니다.이것은 테스트는 아니지만 하나의 테스트가 도움이 될 수 있습니다.

컬럼 대조 확인.이 스크립트는 데이터 정렬을 테이블 기본값으로 변경할 수 있습니다.스크립트에 현재 조회를 추가합니다.

열의 크기는 다음 3단계로 변경할 수 있습니다.

  1. 변경 ★★★★★Address_e 컬럼을 해 주세요./*Addr1*/
  2. 스크립트 실행
ALTER TABLE [dbo].[Address]
ALTER COLUMN [Addr1] [nvarchar](80) NULL
  1. 다시 를 바꿉니다.Address_e ]컬럼으로 하려면 [Uncomment]를 선택합니다.Addr1

언급URL : https://stackoverflow.com/questions/1320152/changing-the-size-of-a-column-referenced-by-a-schema-bound-view-in-sql-server

반응형