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
". 아래 단계를 따르기만 하면 됩니다.
- SSMS를 열다
- 게시자 데이터베이스에 연결
- run 명령어 --
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") 및 클래스 번호("classnu")의 길이를 변경합니다.
alter table class modify facid varchar (5);
alter table class modify classnumber varchar(11);
테이블을 다시 표시하여 차이점을 확인하다
select * from class;
(명령어를 다시 실행하여 차이를 확인합니다.)
이렇게 하면 실제 테이블은 영원히 바뀌지만 더 좋게 바뀌게 됩니다.
추신: 명령어 메모로 이 지시사항을 작성했습니다.이것은 테스트는 아니지만 하나의 테스트가 도움이 될 수 있습니다.
컬럼 대조 확인.이 스크립트는 데이터 정렬을 테이블 기본값으로 변경할 수 있습니다.스크립트에 현재 조회를 추가합니다.
열의 크기는 다음 3단계로 변경할 수 있습니다.
- 변경 ★★★★★
Address_e
컬럼을 해 주세요./*Addr1*/
- 스크립트 실행
ALTER TABLE [dbo].[Address]
ALTER COLUMN [Addr1] [nvarchar](80) NULL
- 다시 를 바꿉니다.
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
'programing' 카테고리의 다른 글
git reset --hard HEAD는 추적되지 않은 파일을 남깁니다. (0) | 2023.04.25 |
---|---|
VBA에서 두 가지 범위에서 범위를 생성하는 방법은 무엇입니까? (0) | 2023.04.25 |
Safari의 Swift Open 링크 (0) | 2023.04.20 |
C#을 사용하여 Excel에서 셀 색상 변경 (0) | 2023.04.20 |
ASP 문자열에서 HTML 태그를 삭제하려면 어떻게 해야 합니까?인터넷? (0) | 2023.04.20 |