2011-01-10 130 views
1

我從現有的存儲過程創建了一個新的存儲過程。我所做的只是複製舊的並改變名稱。複製的SQL Server存儲過程返回不同的結果

現在,當我在查詢分析器中運行這兩個數據時,我從原始數據中獲取數據,但新數據不返回任何數據。

它可能與權限,但都設置爲公共。有什麼想法嗎?

+1

當您直接在存儲過程中運行腳本時,是否獲取了任何數據? – 2011-01-10 19:05:22

+1

什麼是新proc的所有者?新的過程與原始模式是否相同?你有沒有看過每個查詢執行計劃? – pelazem 2011-01-10 19:06:40

回答

0

創建腳本並重新複製sp工作。它可能是proc的所有者或權限相關的。在我工作之後,不想再調試。

1

檢查ansi-nulls值?他們可能會招致頭痛。很難說沒有看到代碼,但作爲一般調試規則;將其拆分爲其基本查詢,並查看引入問題的位置或從原始存儲的sprocedure的結果開始區分的位置。

1

很抱歉,如果我的問題看起來很天真,但是......您是如何真正製作副本的?

我只使用SSMS與數據庫一起工作到目前爲止,我忘記了其他交互式工具,如果有的話。至於SSMS,在這種情況下通常只進行復制:sp_helptext [proc name],然後將輸出複製到新的查詢窗口,更改名稱和瞧(即'執行腳本')。權限在原始proc的屬性中查看,並且通常使用相同或新的腳本添加。

這似乎很微不足道,我覺得有點內疚,把它放在這裏。無論如何,迄今爲止,這種方法從未讓我失望過。那你是什麼?

對不起,這當然不會回答您已經複製的SP的特定問題。我只是想,也許你想在複製這個更基本的問題上得到一些幫助。