有没有一种方法可以保存sql连接的详细信息并在同一个脚本中重新使用它们。我写了下面的内容,将3个sql表的内容导出到同一个数据库中。它的工作原理,但它重新使用一个代码的负载,我不知道如何减少它。在PowerShell中存储并重新使用sql连接字符串
我试过声明所有的连接信息,然后说明它现在的完整代码的位置,但只输出第一个表3次。
我也试过说过一次在开始时再次没有工作。
#agent_lookup
$server = "test"
$database = "MI_Lookups"
$query = "EXEC [dbo].[proc_update_new_agents]
SELECT [l].agent_key AS 'Agent_Key'
,ISNULL([l].agent_name,'') AS 'Agent_Name'
,ISNULL([l].agent_name_1,'') AS 'Agent_Name_1'
,ISNULL([l].agent_type,'') AS 'Agent_Type'
FROM [dbo].[agent_test] AS [l]
ORDER by [l].agent_key asc"
$connection = New-Object System.Data.SqlClient.SqlConnection("Data Source=$server;Integrated Security=SSPI;Initial Catalog=$database;")
$command = New-Object System.Data.SqlClient.SqlCommand($query, $connection)
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter($command)
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$DataSet.Tables[0] | Export-Csv $saveloaction\"Agent_Lookup.csv"
$connection.Close()
#organisation_lookup
$server = "test"
$database = "MI_Lookups"
$query = "EXEC [dbo].[proc_update_new_organisations]
SELECT [l].organisation_key AS 'Organisation_Key'
,ISNULL([l].broker_name,'') AS 'Broker_Name'
,ISNULL([l].team_member,'') AS 'Team_Member'
,ISNULL([l].team_leader,'') AS 'Team_Leader'
FROM [dbo].[orgnisation_test] as [l]
ORDER BY [l].organisation_key asc"
$connection = New-Object System.Data.SqlClient.SqlConnection("Data Source=$server;Integrated Security=SSPI;Initial Catalog=$database;")
$command = New-Object System.Data.SqlClient.SqlCommand($query, $connection)
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter($command)
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$DataSet.Tables[0] | Export-Csv $saveloaction\"Organisation_Lookup.csv"
$connection.Close()
#insurer_lookup
$server = "test"
$database = "MI_Lookups"
$query = "EXEC [dbo].[proc_update_new_insurers]
SELECT [l].insurer_key AS 'Insurer_Key'
,ISNULL([l].insurer_name,'') AS 'Insurer_Name'
,ISNULL([l].insurer_name_1,'') AS 'Insurer_Name_1'
,ISNULL([l].team_member,'') AS 'Team_Member'
,ISNULL([l].team_leader,'') AS 'Team_Leader'
FROM [dbo].[insurer_test] AS [l]
ORDER BY [l].insurer_key asc"
$connection = New-Object System.Data.SqlClient.SqlConnection("Data Source=$server;Integrated Security=SSPI;Initial Catalog=$database;")
$command = New-Object System.Data.SqlClient.SqlCommand($query, $connection)
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter($command)
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$DataSet.Tables[0] | Export-Csv $saveloaction\"Insurer_Lookup.csv"
$connection.Close()
这似乎是合乎逻辑的我只需要编写一次的连接信息,但我是新来的PowerShell和努力,使这个简单,我敢肯定,也是应该的。以上是基本相同的脚本重复三次与不同的表引用。
一如既往的感谢。
天才!我能够完美地实现这一点。我甚至设法在脚本的另一个元素中重新使用try/catch,并将结果附加到日志文件中。谢谢。 – chris1982 2015-03-04 09:11:22