PowerShell在SQL Server 2008中一些用法

发布时间:2024-11-10

SQL 2008

PowerShell早在SQL Server 2005里就已经被集成了, 而我第一次用却在SQL Server 2008

中。今天有空总结几个实际例子出来。欢迎这方面专家来完善一下:

一、先不用SqlServerCmdletSnapin100这个SnapIn来写几个操作常用数据的脚本

SQL 2008

2. 显示SQL查询出来的数据

3. 构建数据库联接字符串

SQL 2008

4. 另一种风格的获取数据库数据

SQL 2008

二、以上是普通PowerShell通过http://操作数据库,下面列出更酷的SQL Server

集成的PowerShell命令

先看一下Invoke-Sqlcmd这个关键的cmdlet的帮助信息:

SQL 2008

13 -------------Example 1 -------------14 15 16 C:PS>Invoke-Sqlcmd -Query "SELECT GETDATE() AS TimeOfQuery;" -ServerInstan 17 18 19 20 21 22 23 This example connects to a named instance of the Database Engine on a comp 24 25 26 27 28 TimeOfQuery 29 30 ----------31 32 10/7/2007 1:04:20 PM 33 34 35 36 -------------Example 2 -------------37 38 39 40 C:PS>Invoke-Sqlcmd -InputFile "C:MyFolderTestSqlCmd.sql" | Out-File -fileP 41 42 43 44 45 46 47 This example reads a file containing Transact-SQL statements and sqlcmd com 48 with the appropriate NTFS permissions. 49 50 51 52 53 54 Output sent to TestSqlCmd.rpt. 55 56

SQL 2008

57 -------------Example 3 -------------58 59 60 61 C:PS>$MyArray = "MYVAR1='String1'", "MYVAR2='String2'" 62 63 Invoke-Sqlcmd -Query "SELECT `$(MYVAR1) AS Var1, `$(MYVAR2) AS Var2;" -Var 64 65 66 67 68 69 70 This example uses an array of character strings as input to the -Variable p 71 identify the sqlcmd variables are escaped using the back-tick (`) character. 72 73 74 75 76 77 Var1 Var2 78 ------79 80 81 String1 String2 82 83 84 -------------Example 4 -------------85 86 87 88 89 C:PS>Set-Location SQLSERVER:SQLMyComputerMyInstance 90 91 Invoke-Sqlcmd -Query "SELECT GETDATE() AS TimeOfQuery;" -ServerInstance (G 92 93 94 95 96 97 This example uses Set-Location to navigate to the SQL Server PowerShell pro 98 SMO Server object for use as the -ServerInstance parameter of Invoke-Sqlcmd. 99 100

SQL 2008

101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144

TimeOfQuery ----------10/18/2007 8:49:43 PM

--------------

Example 5 --------------

C:PS>Invoke-Sqlcmd -Query "PRINT N'abc'" -Verbose

This example uses the PowerShell -Verbose parameter to return the message

VERBOSE: abc

--------------

Example 6 --------------

C:PS>Set-Location SQLSERVER:SQLMyComputerDEFAULTDatabasesAdventureWorks Invoke-Sqlcmd "SELECT DB_NAME() AS DatabaseName;"

This examples uses a positional string to supply the input to the -Query paramete

SQL 2008

仔细读完这个帮助,发现,上面所有对.NET Framework中http://的操作全可以用

Invoke-Sqlcmd代替,非常简洁方便。

比如,获取home数据中所有用户表:

比如,显示home数据库中userinfo表内容:

图片看不清楚?请点击这里查看原图(大图)。

最后,补充,如果直接用SQL Server 2008的Management Studio进去打开PowerShell,

便可以直接操作类似Invoke-Sqlcmd的cmdlets,但是如果没有Management Studio怎么办

呢?

很简单,用Add-PSSnapin SqlServerCmdletSnapin100轻松搞定。

PowerShell在SQL Server 2008中一些用法.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219