具体来说,我有一个具有以下签名的功能:
CREATE FUNCTION [dbo].[GetLevelData]()
RETURNS @level TABLE (
[Level] INT PRIMARY KEY IDENTITY,
[Source Column Name] AS '{Option Level ' + CAST([Level] AS VARCHAR(10)) + '}',
[Parent Column Name] AS '[Parent_L' + CAST([Level] AS VARCHAR(10)) + '_Option]'
)
如何在不修改表格定义的情况下插入行?
答案 0 :(得分:3)
在函数定义的主体内,使用
INSERT @level DEFAULT VALUES;
在要返回的表中创建一个新行。
要一次执行多行,您可以执行以下操作:
CREATE FUNCTION [dbo].[GetLevelData]()
RETURNS @level TABLE (
[Level] INT PRIMARY KEY IDENTITY,
[Source Column Name] AS '{Option Level ' + CAST([Level] AS VARCHAR(10)) + '}',
[Parent Column Name] AS '[Parent_L' + CAST([Level] AS VARCHAR(10)) + '_Option]'
)
AS
BEGIN
WHILE ISNULL(SCOPE_IDENTITY(), 0) < 5 -- to end up with 5 rows
INSERT @level DEFAULT VALUES
RETURN
END
这有点鬼鬼祟祟但确实有效