建立、改變和移除檢視
在 SQL Server 管理物件 (SMO) 中,SQL Server 檢視是由 View 物件表示。
View 物件的 TextBody 屬性會定義檢視。該屬性等於用於建立檢視的 Transact-SQL SELECT 陳述式。
範例
如果要使用所提供的任何程式碼範例,您必須選擇用於建立應用程式的程式設計環境、程式設計範本和程式設計語言。如需詳細資訊,請參閱<如何:在 Visual Studio .NET 中建立 Visual Basic SMO 專案>或<如何:在 Visual Studio .NET 中建立 Visual C# SMO 專案>。
在 Visual Basic 中建立、改變和移除檢視
此程式碼範例示範如何使用內部聯結建立兩個資料表的檢視。該檢視是利用文字模式建立,所以必須設定 TextHeader 屬性。
'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Reference the AdventureWorks database.
Dim db As Database
db = srv.Databases("AdventureWorks")
'Define a View object variable by supplying the parent database, view name and schema in the constructor.
Dim myview As View
myview = New View(db, "Test_View", "Sales")
'Set the TextHeader and TextBody property to define the view.
myview.TextHeader = "CREATE VIEW [Sales].[Test_View] AS"
myview.TextBody = "SELECT h.SalesOrderID, d.OrderQty FROM Sales.SalesOrderHeader AS h INNER JOIN Sales.SalesOrderDetail AS d ON h.SalesOrderID = d.SalesOrderID"
'Create the view on the instance of SQL Server.
myview.Create()
'Remove the view.
myview.Drop()
在 Visual C# 中建立、改變和移除檢視
此程式碼範例示範如何使用內部聯結建立兩個資料表的檢視。該檢視是利用文字模式建立,所以必須設定 TextHeader 屬性。
{
//Connect to the local, default instance of SQL Server.
Server srv;
srv = new Server();
//Reference the AdventureWorks database.
Database db;
db = srv.Databases("AdventureWorks");
//Declare a Table object variable and reference the Product table.
Table tb;
tb = db.Tables("Product", "Production");
//Define a Rule object variable by supplying the parent database, name, and schema in the constructor.
//Note that the full namespace must be given for the Rule type to differentiate it from other Rule types.
Microsoft.SqlServer.Management.Smo.Rule ru;
ru = new Rule(db, "TestRule", "Production");
//Set the TextHeader and TextBody properties to define the rule.
ru.TextHeader = "CREATE RULE [Production].[TestRule] AS";
ru.TextBody = "@value BETWEEN GETDATE() AND DATEADD(year,4,GETDATE())";
//Create the rule on the instance of SQL Server.
ru.Create();
//Bind the rule to a column in the Product table by supplying the table, schema, and
//column as arguments in the BindToColumn method.
ru.BindToColumn("Product", "SellEndDate", "Production");
//Unbind from the column before removing the rule from the database.
ru.UnbindFromColumn("Product", "SellEndDate", "Production");
ru.Drop();
//Connect to the local, default instance of SQL Server.
Server srv;
srv = new Server();
//Reference the AdventureWorks database.
Database db;
db = srv.Databases("AdventureWorks");
//Define a View object variable by supplying the parent database, view name and schema in the constructor.
View myview;
myview = new View(db, "Test_View", "Sales");
//Set the TextHeader and TextBody property to define the view.
myview.TextHeader = "CREATE VIEW [Sales].[Test_View] AS";
myview.TextBody = "SELECT h.SalesOrderID, d.OrderQty FROM Sales.SalesOrderHeader AS h INNER JOIN Sales.SalesOrderDetail AS d ON h.SalesOrderID = d.SalesOrderID";
//Create the view on the instance of SQL Server.
myview.Create();
//Remove the view.
myview.Drop();
}