如何使用查询创建新的数据库对象
如果您更喜欢使用脚本来创建或编辑视图、存储过程、函数、触发器或用户定义的类型,则可以使用 Transact-SQL 编辑器。Transact-SQL 编辑器提供 IntelliSense 和其他语言支持。有关更多信息,请参见使用 Transact-SQL 编辑器编辑和执行脚本。
在您使用Transact-SQL“查看代码”上下文菜单在连接的数据库或项目中打开某一数据库实体时,将调用 编辑器。在您从使用SQL Server 对象资源管理器“新建查询”上下文菜单或者向数据库项目添加新的脚本对象时,TSQL 编辑器也自动打开。如果您没有连接到某一数据库,但想要对其执行查询,则也可以使用**“新建查询连接”对话框,方法是:从“SQL”菜单中选择“Transact-SQL 编辑器”**菜单以连接到某一数据库,然后启动 Transact-SQL 编辑器。
警告
下面的过程使用在连接的数据库开发一节的以前的过程中创建的实体。
使用 Transact-SQL 查询创建一个新表
右键单击 Trade 数据库节点并选择**“新建查询”**。
在脚本窗格中,粘贴以下代码:
CREATE TABLE [dbo].[Fruits] ( [Id] INT NOT NULL, [Perishable] BIT DEFAULT ((1)) NULL, PRIMARY KEY CLUSTERED ([Id] ASC), FOREIGN KEY ([Id]) REFERENCES [dbo].[Products] ([Id]) );
在 编辑器工具栏中单击Transact-SQL“执行查询”按钮以便运行此查询。
在中右键单击 SQL Server 对象资源管理器Trade 数据库,然后选择**“刷新”**。请注意,新的 Fruits 表已添加到该数据库中。
创建新的函数
使用以下代码替换当前 Transact-SQL 编辑器中的代码:
CREATE FUNCTION [dbo].GetProductsBySupplier ( @SupplierId int ) RETURNS @returntable TABLE ( [Id] int NOT NULL, [Name] NVARCHAR (128) NOT NULL, [Shelflife] INT NOT NULL, [SupplierId] INT NOT NULL, [CustomerId] INT NOT NULL ) AS BEGIN INSERT @returntable SELECT * from Products p where p.SupplierId = @SupplierId RETURN END
此函数将返回 Products 表中其 SupplierId 等于指定参数的所有行。在 编辑器工具栏中单击Transact-SQL“执行查询”按钮以便运行此查询。
在SQL Server 对象资源管理器中的 Trade 节点下,展开**“可编程性”和“函数”节点。您可以在“表值函数”**下找到您刚创建的新函数。
创建新的视图
使用以下代码替换当前 Transact-SQL 编辑器中的代码。然后单击编辑器上方的**“执行查询”**按钮以便运行此查询。
CREATE VIEW [dbo].PerishableFruits AS SELECT p.Id, p.Name FROM dbo.Products p join dbo.Fruits f on f.Id = p.Id where f.Perishable = 1
在SQL Server 对象资源管理器中的 Trade 节点下,展开**“视图”**节点以便找到您刚创建的新视图。