我不能在我的項目中使用synomyms因爲一些部署限制所以相反,我創造了這個觀點:無效對象名
CREATE VIEW [dbo].[User] AS SELECT * FROM [PersonalData].[dbo].[User]
GO
它的工作確定,但現在我需要修改如下:
ALTER VIEW [dbo].[User] AS
SELECT [Id],
t.[Name] AS [Title],
[FirstName],
[LastName],
[JobTitle],
[Department],
[EmailAddress],
[PhoneNumber],
[PhoneExtension],
[MobilePhoneNumber],
[CreatedDate],
[ModifiedDate],
[Uid],
[Active]
FROM [PersonalData].[dbo].[User] AS u
LEFT OUTER JOIN [PersonalData].[dbo].[Titles] AS t ON u.TitleId = t.Id
GO
目前,它失敗:
Ambiguous column name 'Id'
在
LEFT OUTER JOIN
線
。
但是,Microsoft SQL Management Studio中凸顯[PersonalData].[dbo].[Titles]
出現錯誤:
Invalid object name '[PersonalData].[dbo].[Titles]
事實上,doesn't提供智能感知我該表的列。
表[PersonalData].[dbo].[Titles]
在那裏。事實上,下面的查詢返回結果沒有任何錯誤:
select * from [PersonalData].[dbo].[Titles]
我對SQL知識是不夠深,但我不明白這是爲什麼,爲什麼它發現Users
表,但doesn't找到Titles
。
多一點背景:
- ,我創建視圖是不是在
PersonalData
數據庫,但在所謂的Platform
其他數據庫。 - 我檢查了上下文,它是好的,我在
Platform
數據庫中創建視圖。
爲什麼會發生?
你不能使用'SELECT u。[Id] AS [id]'?看起來創建視圖就是找到你的'Titles'表格就好了 – 2013-03-05 19:15:36
@MattBusche如果你添加一些細節,我認爲你應該把它作爲這個問題的答案。 – 2013-03-05 19:16:51
@MattBusche:這是答案(我的恥辱)。請回答,我會接受它。謝謝 – lontivero 2013-03-05 19:18:50