日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——2.13 创建视图...

發布時間:2023/12/10 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——2.13 创建视图... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本節書摘來自異步社區出版社《PowerShell V3—SQL Server 2012數據庫自動化運維權威指南》一書中的第2章,第2.13節,作者:【加拿大】Donabel Santos,更多章節內容可以訪問云棲社區“異步社區”公眾號查看。

2.13 創建視圖

本方案展示了如何用PowerShell和SMO創建視圖。

2.13.1 準備

我們將會使用AdventureWorks2008R2數據庫的Person.Person表。

為了知道我們將會創建什么,我們給出了等價的T-SQL。

CREATE VIEW dbo.vwVCPerson AS SELECT TOP 100BusinessEntityID,LastName,FirstName FROM Person.Person WHERE PersonType = 'IN' ORDER BYLastName GO

2.13.2 如何做…

1.通過“Start | Accessories | Windows PowerShell | Windows PowerShell ISE”打開PowerShell控制臺。

2.導入SQLPS模塊,創建一個新的SMO服務器對象。

#import SQL Server module Import-Module SQLPS –DisableNameChecking #replace this with your instance name $instanceName = "KERRIGAN" $server = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Server -ArgumentList $instanceName

3.添加下面的腳本并運行。

$dbName = "AdventureWorks2008R2" $db = $server.Databases[$dbName] $viewName = "vwVCPerson" $view = $db.Views[$viewName] #if view exists, drop it if ($view) {$view.Drop() } $view = New-Object -TypeName Microsoft.SqlServer.Management.SMO.View –ArgumentList $db, $viewName, "dbo" #TextMode = false meaning we are not #going to explicitly write the CREATE VIEW header $view.TextMode = $false $view.TextBody = @" SELECT TOP 100BusinessEntityID,LastName,FirstName FROM Person.Person WHERE PersonType = 'IN' ORDER BYLastName "@ $view.Create()

4.通過在PowerShell中運行下面的代碼測試視圖。

$result = Invoke-Sqlcmd ` -Query "SELECT * FROM vwVCPerson" ` -ServerInstance "$instanceName" ` -Database $dbName $result | Format-Table –AutoSize

5.檢查是否已創建視圖。打開SSMS,展開AdventureWorks2008R2數據庫的Views。

2.13.3 如何實現…

為了使用SMO和PowerShell創建視圖,你首先需要創建一個SMO View變量,它需要3個參數:database handle、view name和schema。

$view = New-Object -TypeName Microsoft.SqlServer.Management.SMO.View -ArgumentList $db, $viewName, "dbo"

可選的設置視圖的所有者。

$view.Owner = "QUERYWORKS\aterra"

視圖創建的核心是視圖的定義。我們將TextMode屬性設置為true或false。

$view.TextMode = $false $view.TextBody = @" SELECT TOP 100BusinessEntityID,LastName,FirstName FROM Person.Person WHERE PersonType = 'IN' ORDER BYLastName "@

如果將TextMode屬性設置為false,意味著讓SMO構造視圖頭部。

$view.TextMode = $false

如果將TextMode屬性設置為true,意味著你需要定義視圖的TextHeader屬性。

$view.TextMode = $true $view.TextHeader = "CREATE VIEW dbo.vwVCPerson AS "

當都準備好后,調用視圖的Create方法。

$view.Create()

2.13.4 更多…

當創建數據庫對象如視圖、存儲過程或者函數,你需要為對象的定義寫代碼。盡管技術上允許你將代碼放在一行,但是將它們放在多行格式更具可讀性。

為了嵌入代碼塊到PowerShell,你需要創建一個字符串。該字符串以@”開始并什么都不跟,并且以”@結束,且必須是該行開頭的前兩個字符。

$view.TextBody = @" SELECT TOP 100BusinessEntityID,LastName,FirstName FROM Person.Person WHERE PersonType = 'IN' ORDER BYLastName "@

這個構造可能讓你會向導C類型注釋,以/開頭以/結束,只是使用不同的字符。

總結

以上是生活随笔為你收集整理的《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——2.13 创建视图...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。