PowerShell连接SQL SERVER数据库进行操作的实现代码
核心代码 #配置信息 $Database = 'DemoDB' $Server = '"WIN-AHAU9NO5R6UDOG"' $UserName = 'kk' $Password = '123456' #创建连接对象 $SqlConn = New-Object System.Data.SqlClient.SqlConnection #使用账号连接MSSQL $SqlConn.ConnectionString = "Data Source=$Server;Initial Catalog=$Database;user id=$UserName;pwd=$Password" #或者以 windows 认证连接 MSSQL #$SqlConn.ConnectionString = "Data Source=$Server;Initial Catalog=$Database;Integrated Security=SSPI;" #打开数据库连接 $SqlConn.open() #执行语句方法一 $SqlCmd = New-Object System.Data.SqlClient.SqlCommand $SqlCmd.connection = $SqlConn $SqlCmd.commandtext = 'delete top(1) from dbo.B' $SqlCmd.executenonquery() #执行语句方法二 $SqlCmd = $SqlConn.CreateCommand() $SqlCmd.commandtext = 'delete top(1) from dbo.B' $SqlCmd.ExecuteScalar() #方法三,查询显示 $SqlCmd.commandtext = 'select name,recovery_model_desc,log_reuse_wait_desc from sys.databases' $SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter $SqlAdapter.SelectCommand = $SqlCmd $set = New-Object data.dataset $SqlAdapter.Fill($set) $set.Tables[0] | Format-Table -Auto #关闭数据库连接 $SqlConn.close() 下面是来自微软的官方帮助文档:Windows PowerShell:使用 PowerShell 处理数据库 您可以使用一些 Windows PowerShell 代码来配置您的数据库,以存储您所需的信息。 Don Jones 数据库是数据存储之王。 那么为什么不利用这些数据库,如 SQL Server 存储一些可以使您的生活更轻松的管理信息的呢? 您可以存储服务器名称、 Windows 版本、 服务包级别、 最后一个管理员登录、 这种东西。 用于 SQL 脚本 让我们假设您有一个名为 SYSINFO 的 SQL Server 2008 数据库。 数据库已命名服务器的表。 该表已五列: 服务器名称、 用户名、 LastLogon、 原因和 SPVersion。 这可以是大多是简单的文本列的 varchar 类型。 $reason = Read-Host 'Reason are you logging on'↵ $reason.replace("'","''")↵ 这两行提示有人为他们正在登录到服务器的原因 ― ― 这一点是相当重要的跟踪。 替换功能会将任何单引号替换使用两个单引号,确保我们稍后构建的 SQL 语句将正常工作。 这并不被为了故意 SQL 注入式攻击的防范。 毕竟,我们谈论受信任的管理员,正确吗? 此线将检索操作系统的信息: $os = Get WmiInfo Win32_OperatingSystem↵ 在这里重要的数据是服务器的名称和其当前的服务包版本。 您可能还需要 BuildNumber 属性,告诉您您正在处理的 Windows 版本。 [assembly.reflection]::loadwithpartialname ('System.Data ') ↵ 这些行创建新的数据库连接: $conn = New-Object System.Data.SqlClient.SqlConnection↵ $conn.ConnectionString = "Data Source=SQLSERVER;Initial Catalog=SYSINFO;Integrated Security=SSPI;"↵ 如果您不使用 SQL Server 2008,连接字符串可能会有点不同 (访问ConnectionStrings.com来查找各种不同的数据库的连接字符串示例):
现在该连接是打开并可供使用。 这两条线创建是我将使用 SQL 服务器发送查询的 SQL 命令。 我已经设置其连接属性设置为"打开",以便 Windows PowerShell 已实际发送命令的方式: $cmd = New-Object System.Data.SqlClient.SqlCommand↵ $cmd.connection = $conn↵ 这所有辛勤的工作。 它创建一个 SQL"插入"查询到数据库表中插入新行。 请注意我使用 C f 格式设置运算符将四条信息插入到查询。 信息被插入 {x} 占位符,它提供如下操作员的逗号分隔列表中的顺序相同: $cmd.commandtext = "INSERT INTO servers (servername,username,spversion,reason) VALUES('{0}','{1}','{2}','{3}')" -f $os.__SERVER,$env.username,$os.servicepackmajorversion,$reason↵ 现在我会执行查询,并关闭数据库连接: $cmd.executenonquery()↵ $conn.close()↵ 请确保您关闭该连接或你得打你一顿头的后面的数据库管理员。 您将看到对ConnectionStrings.com,您可以访问大量的数据库。 如果你没有可以承载数据库的 SQL Server 实例,获取一份快递版安装的地方。 这足够低的这种技术将可能产生的交通。 $reason = Read-Host 'Reason are you logging on'↵ $reason.replace("'","''")↵ $os = Get-WmiInfo Win32_OperatingSystem↵ [assembly.reflection]::loadwithpartialname('System.Data')↵ $conn = New-Object System.Data.SqlClient.SqlConnection↵ $conn.ConnectionString = "Data Source=SQLSERVER;Initial Catalog=SYSINFO;Integrated Security=SSPI;"↵ $conn.open()↵ $cmd = New-Object System.Data.SqlClient.SqlCommand↵ $cmd.connection = $conn↵ $cmd.commandtext = "INSERT INTO servers (servername,'{3}')" -f $os.__SERVER,$reason↵ $cmd.executenonquery()↵ $conn.close()↵ 您可能感兴趣的文章:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |