chr*_*982 1 sql-server powershell
我正在尝试从Powershell将简单的TRUNCATE和BULK INSERT运行到SQL中。这些命令可行吗?
$server = "TESTING"
$database = "TESTAREA"
$connection = New-Object System.Data.SqlClient.SqlConnection("Data Source=$server;Integrated Security=SSPI;Initial Catalog=$database;")
$query = "TRUNCATE TABLE [TESTAREA].dbo.[client_lookup]"
$query = "BULK INSERT [TESTAREA].dbo.[client_lookup]
FROM '\\fss\share\Accounts\Lookup_Tables\Client_Lookup.csv'
WITH
(
KEEPIDENTITY,
FIRSTROW = 2,
FIELDTERMINATOR= ',',
ROWTERMINATOR = '0x0a'
)"
$connection.Close()
Run Code Online (Sandbox Code Playgroud)
这两个查询都在SQL中执行,过去我使用类似的Powershell脚本运行SQL查询(而不是BULK INSERT或TRUNCATE)。我对Powershell相当陌生,我缺少什么吗?
您需要创建SqlCommand对象,并在打开的连接上执行脚本。重构的例子:
$server = "TESTING"
$database = "TESTAREA"
$connection = New-Object System.Data.SqlClient.SqlConnection("Data Source=$server;Integrated Security=SSPI;Initial Catalog=$database;")
$query = "TRUNCATE TABLE dbo.client_lookup;
BULK INSERT dbo.client_lookup
FROM '\\fss\share\Accounts\Lookup_Tables\Client_Lookup.csv'
WITH
(
KEEPIDENTITY,
FIRSTROW = 2,
FIELDTERMINATOR= ',',
ROWTERMINATOR = '0x0a'
)";
$connection.Open();
$command = new-object System.Data.SqlClient.SqlCommand($query, $connection);
$command.ExecuteNonQuery();
$connection.Close();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6548 次 |
| 最近记录: |