我們可以在存儲過程中創建用戶定義函數,然後我們需要刪除該定製用戶定義函數的存儲過程結束。用戶在存儲過程中定義函數
0
A
回答
1
你可以但它可能會變得混亂。
看sp_executesql。這將允許您運行任意SQL,包括DDL。以這種方式創建和使用UDF似乎有點危險 - 您需要確保與競爭線程沒有任何名稱衝突,並且無法獲得任何類型的查詢優化。
我會仔細檢查你的設計,以確保沒有其他解決方案!
0
動態SQL是唯一的方法。
ALTER PROC ...
AS
...
EXEC ('CREATE FUNCTION tempFunc...')
...
EXEC ('DROP FUNCTION tempFunc')
...
GO
但是:
- ,如果你有2個併發執行,因爲tempFunc已經存在
- 如果每個UDF的定義不同,它會失敗,那麼你就需要隨機的名字
- ,如果你隨機化名稱,其餘的代碼將必須是動態SQL太
- 一個存儲過程意味着重用,所以只是堅持它
- 您的代碼將需要ddl_admin或db_owner權限創建UDF
- ...
所以...你想這樣做,爲什麼呢?
+0
我想創建自定義過程就像分割詞爲給參數輸入存儲過程級別我只使用此自定義函數此過程後,我不想在sql server級別出現這個函數。 我們來考慮一下,如果用戶想創建自定義進程,他/她創建了自定義函數。完成這個過程後,他需要刪除它。類似地,如果不創建自定義函數,如果他們不刪除該函數,我們需要更多的空間來存儲數據庫級別。 – Rajagopalk 2010-03-25 06:00:11
相關問題
- 1. 用戶定義的函數優於存儲過程
- 2. 轉換存儲過程到用戶定義的函數
- 3. ArangoDB和用戶定義的函數或存儲過程
- 4. SQL用戶定義函數與存儲過程分支
- 5. 在SQL 2005的存儲過程中創建用戶定義函數
- 6. 如何調用從用戶定義函數存儲過程在SQL Server 2000
- 7. 在存儲過程中調用「函數」
- 8. 在Zend Framework中調用MYSQL存儲函數(非存儲過程)
- 9. 存儲過程和函數
- 10. 查看,存儲過程或表定義的函數
- 11. 存儲過程中的MySQL定義器
- 12. 從select語句調用用戶定義的存儲過程mysql
- 13. 修改存儲過程是否更新存儲過程定義?
- 14. 在側存儲過程中調用用戶定義函數的方法是什麼?
- 15. 需要在用戶定義的函數列,並將其存儲在一個過程中
- 16. 在MySQL存儲過程中使用用戶定義的變量設置表名
- 17. 在存儲過程中爲'in'子句使用MySQL用戶定義的變量
- 18. oracle更新存儲過程與用戶定義的異常
- 19. 存儲過程與用戶定義的錯誤處理功能
- 20. 存儲過程中的函數 - SQL 2008
- 21. 爲什麼在調用存儲過程時調用用戶定義的函數時需要所有者名稱?
- 22. 如何指定H2數據庫用戶定義函數和存儲過程的java類版本?
- 23. 什麼是用戶定義表在存儲過程中的強制性質
- 24. 如何通過DataContext存儲用戶定義的數據類型?
- 25. 使用用戶定義的數據類型調試存儲過程
- 26. 在存儲過程sql server 2005中使用函數調用?
- 27. 無法在SAP HANA中的存儲過程中調用函數
- 28. MS SQL Server 2008中存儲的用戶定義函數在哪裏?
- 29. 何時在存儲過程中使用CTE在存儲過程
- 30. 從存儲過程中調用存儲過程在MySQL中
這看起來像以下副本:[在SQL 2005中的存儲過程中創建用戶定義函數](http://stackoverflow.com/questions/2505408/creating-a-user-defined-function-in-stored-在sql-2005/2505459#2505459) – Thomas 2010-03-24 05:08:04