如何:使用查询创建新的数据库对象
如果更喜欢使用脚本来创建或编辑视图、存储过程、函数、触发器或用户定义的类型,则可以使用 Transact-SQL 编辑器。 Transact-SQL 编辑器提供 IntelliSense 和其他语言支持。 有关详细信息,请参阅使用 Transact-SQL 编辑器编辑和执行脚本。
在使用“查看代码”上下文菜单在连接的数据库或项目中打开某一数据库实体时,将调用 Transact-SQL 编辑器。 在从 SQL Server 对象资源管理器使用“新建查询”上下文菜单或者向数据库项目添加新的脚本对象时,该编辑器也自动打开。 如果没有连接到某一数据库,但想要对其执行查询,则也可以使用“新建查询连接”对话框,方法是:从“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 节点下,展开“视图”节点以便找到刚创建的新视图。