我正在從C#代碼調用存儲過程。該SP創建臨時表以存儲一些值。當我從查詢分析器運行這個SP時,一切似乎都沒有問題。但是,當我從C#代碼運行它,臨時表沒有得到創建。從SP調用SP時,臨時表變量似乎不工作#
我正在使用@tableName而不是#tableName。
臨時表僅在存儲過程中被引用。在SP之外不需要它們。 有什麼我錯過了嗎?
我正在從C#代碼調用存儲過程。該SP創建臨時表以存儲一些值。當我從查詢分析器運行這個SP時,一切似乎都沒有問題。但是,當我從C#代碼運行它,臨時表沒有得到創建。從SP調用SP時,臨時表變量似乎不工作#
我正在使用@tableName而不是#tableName。
臨時表僅在存儲過程中被引用。在SP之外不需要它們。 有什麼我錯過了嗎?
這是因爲用戶憑據您使用在查詢分析器(「山」也許?)很可能不是比C#應用程序所使用的那些相同。
用戶需要訪問系統數據庫tempdb中(讀/寫)如果不是他不能創建(過程中)的時態表時,調用存儲過程。
給訪問tempdb中到C#與您使用相同的用戶在查詢分析器(或任何其他dbadmin用戶)使用或測試你的C#應用程序的登錄用戶只是爲了測試它的工作原理。
根據您的評論詢問有關SQL Profiler的聲明。
步驟1:打開SQL事件探查器,並創建一個新的跟蹤。去標籤事件選擇。並取消標記安全審計和會話
第2步:檢查顯示所有事件複選框在右下角,你會得到在網格中的幾個事件。轉到存儲過程和T-SQL並將其標記在下面的屏幕截圖中。
第3步:運行它。
我對查詢分析器以及應用程序都使用相同的用戶sa。 :( –
什麼是由SQL引發的錯誤消息?它是否說臨時表不能被創建?它已經存在? –
它沒有引發任何錯誤,但繼續運行。可以看到對SP的調用,但是沒有任何其他的內部語句 –
臨時表將自動刪除會話結束時,你確定它一旦C#代碼完成起來並不只是被刪除? Review the docs瞭解更多信息。
是的 - 你錯過了張貼一些代碼! – Polyfun
這是臨時表範圍:http://stackoverflow.com/questions/892351/sql-server-2005-and-temporary-table-scope –
@ShellShock - 請找到我最近的編輯。 –