0
我在SQL Server 2008中,如存儲過程:SQL Server在存儲過程中如何查找對象名稱?
CREATE PROCEDURE [dbo].[test]
AS
BEGIN
SET NOCOUNT ON;
SELECT user_name();
SELECT SCHEMA_NAME()
SELECT * FROM MyView
END
我有一個名爲testuser.MyView視圖。
exec as user = 'testuser' exec test
這說明user_name和SCHEMA_NAME都被設置爲TESTUSER 但我也得到一個Invalid object name 'MyView'.
消息,作爲SP仍然在dbo架構查找視圖名稱:然後我用調用SP 。
有沒有辦法改變SP的執行方式,這樣MyView對象引用testuser.MyView而不必使用完全限定名稱?
我想在不同模式的相同表結構上使用一組很多存儲過程。我真的希望避免使用動態SQL重寫所有SP,或者使用限定名稱創建所有SP的副本。
謝謝丹。我擔心可能會是這樣。 SP非常複雜,其中有很多,所以我想避免100個重複的SP。我想擦除和重建所有腳本都是唯一的解決方案。 – geographika