Pages - Menu

2017年12月28日 星期四

MS SQL 傳入table給SP當參數

在小舖看到個問題,傳入table當參數給SP
純量函數傳入變數Table當參考的疑問
解法如下,

1.首先建立 User-Defined Table Types
CREATE TYPE TableType 
AS TABLE (LocationName VARCHAR(50))
再建立一個測試的function

Create FUNCTION [dbo].[example]
(
     @TableName TableType READONLY
)
RETURNS VARCHAR(50)
AS
BEGIN
     DECLARE @name VARCHAR(50)
    SELECT TOP 1 @name = LocationName FROM @TableName
     RETURN @name
END

再來就可以直接傳參數進去了


declare @t TableType
insert into @t
select userName from userlogs
--select * from @t
declare @name nvarchar(20)
set @name =  dbo.example(@t)
print(@name)

稍微解釋一下
宣告@t 為 一個tabletype
然後撈資料出來給@t
把資料表丟去example裡面當參數,
直接印出來,收工。

沒有留言:

張貼留言