对最终用户的 SQL 查询

TSQL query to end user

我已经为我们财务部门的一名成员编写了一个参数化交易 SQL 查询,并且在一个月内我多次 运行 它并将带有 headers 的原始输出复制到 excel为了他。现在那个部门正在区域化,我有几个财务部门都想要同样的东西。

我知道最终会部署 SSRS,但我们的基础架构团队正在构建一个新环境,暂时不想在 'old world' 中安装任何新设备。

我只需要一种方法让 select 个人可以访问 运行 对数据库的参数化查询。我曾考虑过将查询转换为视图并为他们的网络帐户创建只能访问该视图的登录名,但我认为您不能将参数与视图一起使用。我想知道是否有一个简单的界面可以让他们在不使用 SSRS 的情况下针对存储的查询或视图输入参数。看起来很简单,但我没找到答案。

抱歉,如果这是一个愚蠢的问题,但我刚刚从服务器管理员转到 DBA 角色,而且我只是触及了皮毛!

创建一个视图并在 SP 中使用参数调用它:-

样本为

Create View [dbo].[vw_sampleView]
AS
BEGIN
 SELECT * FROM tblSample
END


CREATE PROC [dbo].[proc_GetData]
@id int
AS    
BEGIN
 SELECT * FROM vw_sampleView where id= @id
END

然后这个SP返回过滤后的数据。授予不同用户执行此SP的权限。

GRANT EXECUTE ON [dbo].[proc_GetData] TO [user_logins]

您可以创建一个 UDF,它将根据参数 return 和 table。例如:

CREATE FUNCTION [dbo].[fnt_myfunction]( @id INT)
RETURNS TABLE
AS
RETURN (
        SELECT *
        FROM myTable
        WHERE id = @id
        );

DECLARE @id INT = 1;  

SELECT * FROM [dbo].[fnt_myfunction](@id);

希望对您有所帮助。