我們可以在存儲過程中創建用戶定義函數,然後我們需要刪除該定製用戶定義函數的存儲過程結束。用戶在存儲過程中定義函數
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. 轉換存儲過程到用戶定義的函數
- 4. SQL用戶定義函數與存儲過程分支
- 5. 用戶定義的函數優於存儲過程
- 6. ArangoDB和用戶定義的函數或存儲過程
- 7. 在SQL 2005的存儲過程中創建用戶定義函數
- 8. 將用戶定義的函數作用於DB2中的存儲過程
- 9. 如何調用從用戶定義函數存儲過程在SQL Server 2000
- 10. 根據存儲在列表中的過程定義函數
- 11. 在存儲過程中調用「函數」
- 12. 在Zend Framework中調用MYSQL存儲函數(非存儲過程)
- 13. 存儲過程和函數
- 14. 將參數從存儲過程傳遞給函數(在存儲過程中)
- 15. 創建自定義函數或存儲過程
- 16. 查看,存儲過程或表定義的函數
- 17. 存儲過程中的MySQL定義器
- 18. 從select語句調用用戶定義的存儲過程mysql
- 19. 修改存儲過程是否更新存儲過程定義?
- 20. 在側存儲過程中調用用戶定義函數的方法是什麼?
- 21. 需要在用戶定義的函數列,並將其存儲在一個過程中
- 22. 過程或函數在我的存儲過程中指定的參數太多
- 23. 在MySQL存儲過程中使用用戶定義的變量設置表名
- 24. 在存儲過程中爲'in'子句使用MySQL用戶定義的變量
- 25. oracle更新存儲過程與用戶定義的異常
- 26. 存儲過程與用戶定義的錯誤處理功能
- 27. 存儲過程凍結調用函數
- 28. 從存儲過程調用php函數
- 29. MySQL:從函數調用存儲過程
- 30. 使用存儲過程作爲函數
這看起來像以下副本:[在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