В SQL Server создайте представление, используя две таблицы. Одна из таблиц используется *
.В SQL Server в таблице добавлен столбец. вызывающая ошибку просмотра
Затем я добавляю столбец в таблицу. Это вызывает ошибку представления.
Чтобы решить эту проблему, необходимо перестроить представление.
Если в этой таблице используется много видов, как определить соответствующие виды и перестроить их?
Есть несколько способов?
Спасибо!
Условия испытаний: SQL Server 2008
Тест SQL:
if exists(select * from sys.objects where name='tblTestA' and type='u')
DROP TABLE tblTestA
create table tblTestA(Part varchar(10),Qty int)
insert into tblTestA values('A',10)
insert into tblTestA values('B',20)
go
if exists(select * from sys.objects where name='tblTestB' and type='u')
DROP TABLE tblTestB
GO
create table tblTestB(Part varchar(10),Price decimal(9,4))
GO
insert into tblTestB values('A',1.1)
insert into tblTestB values('B',2.2)
GO
if exists(select * from sys.objects where name='v_test' and type='v')
DROP VIEW v_test
go
create View v_test
as
select a.*,b.Price
from tblTestA a, tblTestB b
where a.Part=b.Part
go
Execute:
select * from v_test
go
результат:
Part Qty Price
A 10 1.1000
B 20 2.2000
Добавить столбец
alter table tblTestA add Remark nvarchar(200) not null default('test')
go
Execute:
select * from v_test
go
Результат:
Part Qty Price
A 10 test
B 20 test
вы могли бы попытаться найти определение представлений для таблицы, которые были изменены, stackoverflow.com/questions/4765323/is-there-a-way-to -retrieve-the-view-definition-from-a-sql-server-using-plain-ado –
[Плохие привычки пинать: использование JOIN в старом стиле] (http://sqlblog.com/blogs/aaron_bertrand/archive/ 2009/10/08/bad-habits-to-kick-using-old-style-joins.aspx) - стиль старого стиля * разделенный запятыми список таблиц * был отменен с помощью ANSI - ** 92 ** SQL Стандарт (более ** 20 лет ** назад!) –
Спасибо! Хорошие привычки: выберите a. *, B.Цена из tblTestA - внутреннее соединение tblTestB b на a.Part = b.Part? – dream