보기가 의존하는 테이블에 열을 추가 할 때 명명 된 필드와 함께보기에 매우 예기치 않은 영향이 있습니다.테이블에 열을 추가하면 뷰의 sql이 변경됩니다.
SQL은 :
다른 사람의 코드가 테이블 AccessUser에 동적 추가 열을 수행SELECT dbo.AccessCustomFieldDepartment.AccessCustomFieldDepartmentID, dbo.AccessCustomFieldDepartment.AccessCustomField_StoreID,
dbo.AccessCustomFieldDepartment.AccessCustomField_ShopOwner, dbo.AccessCustomFieldDepartment.AccessCustomField_CVRnumber,
dbo.AccessCustomFieldDepartment.AccessCustomField_OpenMonToWed, dbo.AccessCustomFieldDepartment.AccessCustomField_OpenMonToThu,
dbo.AccessCustomFieldDepartment.AccessCustomField_OpenMonToFri, dbo.AccessCustomFieldDepartment.AccessCustomField_OpenMonToTue,
--..
--a bunch of other fields
--..
dbo.AccessUser.AccessUserAddress, dbo.AccessUser.AccessUserAddress2, dbo.AccessUser.AccessUserZip, dbo.AccessUser.AccessUserCity,
dbo.AccessUser.AccessUserCountry, dbo.AccessUser.AccessUserWeb
FROM dbo.AccessUser INNER JOIN
dbo.AccessCustomFieldDepartment ON dbo.AccessUser.AccessUserID = dbo.AccessCustomFieldDepartment.AccessCustomFieldDepartmentID
, 서버 또는 뭔가 뷰의 SQL을 변경!
EG :
dbo.AccessUser.AccessUserCountry, dbo.AccessUser.AccessUserWeb
이 크게 F *이 이 *이 * 데이터의 내 결과 발표를이야 .... 그것보기처럼 유지하려고
dbo.AccessUser.AccessUserCountry AS AccessUserCity,
dbo.AccessUser.AccessUserWeb AS AccessUserCountry
로 변경됩니다 각 열의 위치
열을 삭제하면 SQL이 원래대로 돌아갑니다.
그래서 질문은 : 무슨 일
- ? 서버입니까? CMS의 일부 기능 소프트웨어 (필드 추가 기능이있는 곳)
- SQL 문을 100 % 정적으로 간주하도록보기를 설정할 수 있습니까?
감사합니다,
스틴
어떤 DBMS입니까? 액세스? 링크 된 테이블의 유무에 관계없이? 일반적으로 해결책은 자동으로 발생해야하는 뷰를 재구성하는 것이지만 그렇지 않을 수도 있습니다. SQL Server에서 sp_recompile. 또한 테이블 끝에서 열을 추가하는 것을 피하십시오. 중간에 열을 추가하는 것은 문제를 묻는 것이며보기에서 *를 사용하지 마십시오. – Ben
[DDL 트리거] (http://msdn.microsoft.com/en-us/library/ms175941.aspx), 아마도? –
의견에 감사드립니다. @ 벤 : MS-SQL- 서버 2008R2. 방금 CMS의 기존 테이블에서 데이터를 가져 오기 위해 기본보기에서 만들었습니다. 추가하는 열을 제어 할 수 없습니다. 모든 컬럼 이름을 명시 적으로 언급 했으므로, 왜 내가 그 변화를 보았는지 너무 놀랐습니다. 여전히 피하는 방법을 찾고 싶지만보기를 사용하지 않고 실행하는 옵션이 있습니다 ... – Steen