Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server Excel中的SQL过程从连接属性运行,参数为用户登录_Sql Server_Excel - Fatal编程技术网

Sql server Excel中的SQL过程从连接属性运行,参数为用户登录

Sql server Excel中的SQL过程从连接属性运行,参数为用户登录,sql-server,excel,Sql Server,Excel,我想从Excel运行SQL过程。我想通过将命令类型设置为SQL的连接属性来实现。下面是一个很好的例子: 如何获取用户登录并将其插入到专门准备的dbo.login\u history\u表中?如何编写连接属性的命令文本 我正在寻找类似于: EXECUTE dbo.procedure_who_gets_here ORIGINAL_LOGIN() 其中,ORIGINAL_LOGIN()是一个参数 更新。以下是存储过程的代码 create procedure procedure_who_gets_h

我想从Excel运行SQL过程。我想通过将
命令类型设置为SQL的连接属性来实现。下面是一个很好的例子:

如何获取用户登录并将其插入到专门准备的
dbo.login\u history\u表中
?如何编写连接属性的
命令文本

我正在寻找类似于:

EXECUTE dbo.procedure_who_gets_here ORIGINAL_LOGIN()
其中,ORIGINAL_LOGIN()是一个参数

更新。以下是存储过程的代码

create procedure procedure_who_gets_here
(
@UserLogin as varchar(255)
)
as
begin

-- part one, get user data
insert into dbo.LoginsHistory
select 
getdate(), 
ORIGINAL_LOGIN(), -- if ORIGINAL_LOGIN() worked, the @UserLogin would be superfluous
@UserLogin

-- part two, show user what he has to see
select * from dbo.MyTable

end

所有提示都要归功于肖恩·兰格的回答。我不得不改变这两部分的顺序。首先,选择“插入”。现在一切都好了。谢谢你,肖恩

create procedure procedure_who_gets_here
as
begin

-- part two, show user what he has to see
select * from dbo.MyTable

-- part one, get user data
insert into dbo.LoginsHistory
select 
getdate(), 
ORIGINAL_LOGIN()

end

这是登录到运行Excel的计算机的用户,还是登录到数据库的用户?为什么不在过程中使用原始登录?@jnevil用户登录到运行Excel的计算机。尽管用户是智人,但他不知道SQL是什么。两个连接属性都不相同。他没有使用管理工作室,也没有登录SQL数据库。用户只是一个用户。@SeanLange过程可以正常工作,只要您只对select语句使用它。我不知道如何在一个过程中结合选择和插入。单靠插入是不行的。除非你能提供一些细节而不是“它不起作用”,否则任何人都帮不了你。至少,您应该发布您拥有的存储过程,并解释您正在尝试执行的操作。