PowerShell 2.0 实践(十四)管理 SQL Server 2008 R2(2)
2011-10-06 10:08
615 查看
上一次我们熟悉了SQL Server 2008 R2的新特性与PowerShell与SQL Server相关的扩展,这些扩展背后实际上还是使用的SMO(SQL Server对象模型),可以在MSDN上查看。SQL Server 的PowerShell扩展可以在这里查看。本次我们继续来测试相关的命令,学习SMO中的对象。
测试脚本下载
本系列所有测试脚本均在Windows Server 2008 R2 DataCenter (PowerShell 2.0) + PowerGUI Script Editor Free Edition x64中测试通过。
SQL Server系列使用了SQL Server 2008 R2 DataCenter x64
转载请注明出处:/article/5136324.html
1、查询本机默认实例下所有的数据库、包含的表、存储过程、视图、触发器、用户自定义函数:
Set-Location SQLSERVER:\SQL\BrooksPC\DEFAULT\Databases
Get-ChildItem |
SELECT DisplayName, Tables, StoredProcedures, Views, Triggers,
UserDefinedFunctions |
Format-Table
运行结果:
其实SQLSERVER:\SQL\BrooksPC\DEFAULT\Databases目录下包含的内容远不止这些,还有数据库用户、程序集等很多重要的对象。
还可以查看远程数据库上的对象:
家里使用了无线路由,连接另一台笔记本。
Set-Location SQLSERVER:\SQL\192.168.0.101\DEFAULT\Databases
Get-ChildItem |
Select Name,
Tables
运行结果:
需要注意的是若目录中包含特殊字符,则需要编码、解码:(参见MSDN)
例如:
Set-Location (Encode-SqlName "Table:Test")
Set-LocationSQLSERVER:\SQL\BrooksPC\DEFAULT\Databases\`#MyTempTable
2、执行SQL语句:
Invoke-Sqlcmd可以执行SQL或XQuery语句:
Invoke-Sqlcmd
-Query
"SELECT @@VERSION;"
运行结果:
GUI中可以看到完整结果:
同样可以远程执行SQL语句:
Invoke-Sqlcmd
-Query
"SELECT @@VERSION;" -HostName
192.168.0.101
运行结果:
查询Northwind中的Customer表:
Invoke-Sqlcmd
-Query
"SELECT * FROM dbo.Customers;"
-ServerInstance "192.168.0.101"
-Database
"Northwind" -Username
"sa"
-Password "******" |
Format-Table
运行结果:
调用存储过程:
Invoke-Sqlcmd
-Query
"EXECUTE sp_PKeys 'Customers';"
-ServerInstance "192.168.0.101"
-Database
"Northwind" -Username
"sa"
-Password "******" |
Format-Table
运行结果:
小结:
本次进一步熟悉了SQL Server 目录中的结构以及获取本地及远程数据库服务的方法,通过Invoke-Sqlcmd可以调用SQL语句进行查询,支持本地及远程数据库实例。后续篇章将继续练习SMO、SQL Server目录的用法。
测试脚本下载
本系列所有测试脚本均在Windows Server 2008 R2 DataCenter (PowerShell 2.0) + PowerGUI Script Editor Free Edition x64中测试通过。
SQL Server系列使用了SQL Server 2008 R2 DataCenter x64
转载请注明出处:/article/5136324.html
1、查询本机默认实例下所有的数据库、包含的表、存储过程、视图、触发器、用户自定义函数:
Set-Location SQLSERVER:\SQL\BrooksPC\DEFAULT\Databases
Get-ChildItem |
SELECT DisplayName, Tables, StoredProcedures, Views, Triggers,
UserDefinedFunctions |
Format-Table
运行结果:
其实SQLSERVER:\SQL\BrooksPC\DEFAULT\Databases目录下包含的内容远不止这些,还有数据库用户、程序集等很多重要的对象。
还可以查看远程数据库上的对象:
家里使用了无线路由,连接另一台笔记本。
Set-Location SQLSERVER:\SQL\192.168.0.101\DEFAULT\Databases
Get-ChildItem |
Select Name,
Tables
运行结果:
需要注意的是若目录中包含特殊字符,则需要编码、解码:(参见MSDN)
Character | \ | / | : | % | < | > | * | ? | [ | ] | | |
Hexadecimal Encoding | %5C | %2F | %3A | %25 | %3C | %3E | %2A | %3F | %5B | %5D | %7C |
Set-Location (Encode-SqlName "Table:Test")
Set-Location (Decode-SqlName "Table%3ATest")
若一些特殊字符在SQL Server中合法却在PowerShell中有特殊含义,如注释:#。
则需要用`转义:
Set-LocationSQLSERVER:\SQL\BrooksPC\DEFAULT\Databases\`#MyTempTable
Get-ChildItem
2、执行SQL语句:
Invoke-Sqlcmd可以执行SQL或XQuery语句:
Invoke-Sqlcmd
-Query
"SELECT @@VERSION;"
运行结果:
GUI中可以看到完整结果:
同样可以远程执行SQL语句:
Invoke-Sqlcmd
-Query
"SELECT @@VERSION;" -HostName
192.168.0.101
运行结果:
查询Northwind中的Customer表:
Invoke-Sqlcmd
-Query
"SELECT * FROM dbo.Customers;"
-ServerInstance "192.168.0.101"
-Database
"Northwind" -Username
"sa"
-Password "******" |
Format-Table
运行结果:
调用存储过程:
Invoke-Sqlcmd
-Query
"EXECUTE sp_PKeys 'Customers';"
-ServerInstance "192.168.0.101"
-Database
"Northwind" -Username
"sa"
-Password "******" |
Format-Table
运行结果:
小结:
本次进一步熟悉了SQL Server 目录中的结构以及获取本地及远程数据库服务的方法,通过Invoke-Sqlcmd可以调用SQL语句进行查询,支持本地及远程数据库实例。后续篇章将继续练习SMO、SQL Server目录的用法。
相关文章推荐
- PowerShell 2.0 实践(十四)管理 SQL Server 2008 R2(2)
- PowerShell 2.0 实践(十二)管理 SQL Server 2008 R2(1)
- PowerShell 2.0 实践(十二)管理 SQL Server 2008 R2(1)
- PowerShell 2.0 实践(四)管理Windows进程
- Sql server 2008 R2 配置管理工具服务显示远程过程调用失败:0x800706be
- SQL SERVER 2008 R2配置管理器出现“远程过程调用失败”【0x800706be】的解决办法
- PowerShell 2.0 实践(五)管理Windows注册表
- SQL Server 2008 R2 应用及多服务器管理
- SQL Server 2008 R2数据管理全新亮相:安全性的增强功能
- SQL Server 2008 R2数据管理全新亮相:多服务器管理
- SQL Server 2008 R2数据管理全新亮相:多服务器管理
- sql server 2008 r2 打开ssms管理工具,提示“值不能为空”问题
- Sql server 2008 R2 配置管理工具服务显示远程过程调用失败:0x800706be
- sql2008和sql2012混合安装后打开 SQL SERVER 2008 R2配置管理器出现“远程过程调用失败”【0x800706be】的解决办法
- sql server 2008 R2 配置管理工具打不开
- SQL Server 2008 R2新增功能:多服务器管理
- PowerShell 2.0 实践(七)管理活动目录(上)
- SQL Server 2008 R2新特性:主数据管理
- PowerShell 2.0 实践(四)管理Windows进程
- SQL Server 2008 R2数据管理全新亮相:多服务器管理