Dha*_*ana 2 sql stored-procedures dynamic-queries
SQL Server (2000/2005) 函数获取表名和字段名作为参数,并从函数内的动态查询返回结果。结果应该分配给一个Table变量,该变量将在存储过程中进一步使用。如何实现这一目标?
我收到错误消息:“只能从函数内部执行函数和扩展存储过程。”
Declare @Data as table (FieldValue varchar(100))
insert into @Data select * from MyFunction ('Person.Address','AddressID')
-- Function
Alter function MyFunction (
@TableName varchar(100), @FieldName varchar(100)
) returns @GetData table (
FieldValue varchar(100)
) as
begin
Declare @SQL varchar(250)
Set @SQL = 'Select '+@FieldName+ ' from '+ @TableName
Exec sp_executesql @SQL
return
end
Run Code Online (Sandbox Code Playgroud)
只是为了关闭循环......
这是调用函数并将这些结果放入表变量的语法
以@simons 解决方案为基础的小型构建
这在 sql2012 和 sql2014 上运行。
[不要忘记关闭 table 语句。如果您将表格全部放在一行上,就很容易做到。]
declare @t table(field1 nvarchar(100) )
insert @t select * from dbo.Cool_1Field_Function( 'parm1' ,'parm2')
select * from @t
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12671 次 |
| 最近记录: |