2013-02-22 82 views
1

我正在使用invoke-sqlcmd和invoke-sqlcmd2對SQL服務器運行查詢。invoke-sqlcmd - 我可以更改ApplicationName嗎?

有沒有辦法改變它運行的ApplicationName?當我運行探查器跟蹤時,我發現查詢是由「.Net SqlClient數據提供者」運行的,我想改變它。

任何幫助,不勝感激

回答

1

好吧,futzed與乍得米勒的invoke-sqlcmd2腳本,以及與此想出了:

45行,在 「數據行」 我加了一個逗號,然後:

[Parameter(Position=9, Mandatory=$false)] [string]$ApplicationName='Powershell' 

然後修改連接字符串(約54行):

if ($Username) 
{ $ConnectionString = "Server={0};Database={1};User ID={2};Password={3};Application Name={5};Trusted_Connection=False;Connect Timeout={4}" -f $ServerInstance,$Database,$Username,$Password,$ConnectionTimeout,$ApplicationName } 
else 
{ $ConnectionString = "Server={0};Database={1};Integrated Security=True;Application Name={3};Connect Timeout={2}" -f $ServerInstance,$Database,$ConnectionTimeout,$ApplicationName } 

默認appname是現在「Powershell的」,但可以通過使用-ApplicationName參數被改變。

0

在連接字符串中包含Application Name=MyAppName;,這將是在探查中顯示的內容。

+1

無法使用「Invoke-SQLCmd」或「Invoke-SQLCmd2」指定連接字符串(http://gallery.technet.microsoft.com/scriptcenter/7985b7ef-ed89-4dfd-b02a-433cc4e30894)據我所知。所以你必須直接使用System.Data.SqlClient。 – alroc 2013-02-22 18:30:43

+0

@alroc謝謝。值得一試。可能必須修改invoke-sqlcmd/2並將其添加到它。謝謝。 – mbourgon 2013-02-23 04:30:59