Cra*_*ein 14 sql-server sql-server-2008-r2 sqlcmd
使用 SQL Server 2008 R2 企业版
考虑以下语句:
:setvar source_server_name "SERVERNAME\INSTANCENAME"
Run Code Online (Sandbox Code Playgroud)
是否可以在 SQLCMD 模式下使用 TSQL 获取该值
就像是: :setvar source_server_name = SELECT @@servername
谢谢
2013 年 7 月 15 日更新
下面提供的两个答案并没有给出理想的结果,所以我添加了一个更相关的例子。
:setvar source_server_name [myserver]
Run Code Online (Sandbox Code Playgroud)
变量 source_server_name 设置为文本字符串 [myserver_1]
我希望能够做到这一点:
create table #tmp(
id int identity(1,1),
server sysname
)
insert into #tmp values('myserver_1'),('myserver_2');
:setvar source_server_name = SELECT server FROM #tmp WHERE id = 1
select '$(source_server_name)'
(No column name)
myserver_1
Run Code Online (Sandbox Code Playgroud)
变量 source_server_name 将设置为 ID 1 的服务器中的值。
SQL*_*tar 10
我认为你需要将你的结果输出到一个文件中并将它们带回来。像这样的东西应该可以帮助你接近你正在寻找的东西:
:setvar MyDir "C:\scripts"
:OUT $(MyDir)\test.txt
PRINT ':SETVAR ServerName ''' + @@SERVERNAME + ''''
GO
:OUT stdout
:r $(MyDir)\test.txt
GO
SELECT $(ServerName)
Run Code Online (Sandbox Code Playgroud)
您可以在此处查看更多示例。
| 归档时间: |
|
| 查看次数: |
17828 次 |
| 最近记录: |