我正在努力研究如何創建一個用戶定義的函數,它將接受一個輸入參數作爲表,然後輸出一個表,然後可以在調用它的函數中使用該表,作爲表格。從我一直在使用的示例中,我可以輸入表格或將表格取出,但不能同時使用 有誰知道該怎麼做?UDF輸入一個表並輸出一個表
0
A
回答
0
有一點幫助,我想我已經明白了。
--DROP TYPE TableType
CREATE TYPE TableType
AS TABLE (SomePrimaryKey_ID INT)
GO
--DROP FUNCTION Example
CREATE FUNCTION Example(@TableName TableType READONLY)
RETURNS @Test TABLE
(
intcfmno INT
)
AS
BEGIN
DECLARE @testing AS VARCHAR --<< just checking that I can still declare a variable in the funciton
INSERT @Test
SELECT 22
RETURN
END
-- testing the function
DECLARE @myTable TableType
INSERT INTO @myTable(SomePrimaryKey_ID) VALUES(111)
--SELECT * FROM @myTable
SELECT * from Example(@myTable)
+0
我可能會跳槍。這將工作,沒有問題,如果我在主數據庫,但只要我去一個用戶數據庫然後失敗,帶有標量錯誤消息。檢查了類型和功能的權限。我也是一樣跑步。已經解決了日期輸入和表輸出的問題。但真的很想做到這一點。 –
+0
對於那裏的任何人。這個問題是由於數據庫的兼容級別造成的。可以使用DECLARE @sql varchar(250) set @ sql ='alter database'+ quotename(db_name())+'SET COMPATIBILITY_LEVEL = 90'; exec(@sql) –
相關問題
- 1. 從多個輸入創建一個列表並平均輸出
- 2. 將輸出合併到一個表中
- 3. 插入輸出到一個臨時表
- 4. PHP輸出到一個表
- 5. Sql加入,更新一個表格並從另一個表格生成輸出
- 6. 拿一個表作爲輸入和輸出使用另一個表的BigQuery
- 7. 如何讓這個表單的輸出輸入一個數組?
- 8. HTML表單 - 來自一個輸入的多個輸出?
- 9. 如何在一個輸入有兩個輸出時將一個輸入限制爲一個輸出?數據庫
- 10. sqlite3的獲得從一個表輸出作爲輸入提供給另一個
- 11. 在一個輸入表格中輸入兩個不同的值
- 12. 輸入值並退出,如果一個空行已被輸入
- 13. 拆分輸入參數並在存儲過程中輸出一個表
- 14. 從用戶輸入製作一個嵌套列表,並輸出到CSV
- 15. 填寫一個表時,輸入到另一個表
- 16. 每行輸入和輸出一個字
- 17. XSLT 2.0 |一個輸入 - >多個樣式表 - >多個輸出
- 18. 如何將兩個表中的列合併爲一個輸出?
- 19. 如何合併兩個表爲一個輸出數據
- 20. 一個輸出
- 21. 將兩個輸入合併爲一個表格
- 22. 創建並在「輸入」上輸入一個輸入
- 23. 輸出參數用於在同一個表中插入一行
- 24. wxPython - 從一個TextCtrl處理輸入並將輸出發送到另一個TextCtrl?
- 25. 添加一個輸入字段,循環雖然並輸出值到一個div
- 26. 高效地輸出一個表
- 27. Haskell輸出一個ascii值列表
- 28. 一個PHP表格的HTML輸出
- 29. 輸出一個3D數組作爲表
- 30. Maven插件;使用一個輸出作爲另一個輸入
這會有助於更多地瞭解您正在嘗試做什麼。例如,您可以通過使用XML來傳遞類似結構的表格。如果你想傳遞一個真正的表,你可以通過傳遞表名並在動態sql中使用它來完成。你也可以使用全局臨時表來處理你的函數,但它很大程度上取決於你想要完成的工作。 – SubqueryCrunch
理想情況下,我想定義一個輸入到UDF作爲表,然後得到它的結果作爲表。即CREATE FUNCTION ExampleFunction(@TABLE AS TABLE( \t \t \t \t \t SomePrimaryKey [INT] NULL \t \t \t \t \t)READONLY) RETURNS @SomethingElse TABLE ( SomePrimaryKey INT, SomeData爲nvarchar(80), SomeMoreData int ) –
另一個存儲過程可以調用它,給它一個數據表,然後獲取數據表以繼續處理。 –