我了解SQL Server 架构的功能,但最佳实践是什么?当然,它们提供了另一层安全性,并在数据库内提供数据库对象的逻辑分组,但那里的典型情况是什么?根据我的经验,我经常看不到许多定制的模式被利用。这是典型的吗?是不是应该使用自定义模式的不太频繁的场景?
我testtable在数据库testbase中创建了一个具有以下结构的表:
product_no (int, not null)
product_name (varchar(30), not null)
price (money, null)
expire_date (date, null)
expire_time (time(7), null)
Run Code Online (Sandbox Code Playgroud)
我使用了 Microsoft SQL Server 2008 Management Studio。
我创建了一个存储过程testtable_pricesmaller如下
use testbase
go
create procedure testtable_pricesmaller
@pricelimit money
as
select * from testtable where price = @pricelimit;
go
Run Code Online (Sandbox Code Playgroud)
并且能够查看Object ExplorerMicrosoft SQL Server Management Studio上的存储过程。(它在下面的树结构中列出Object Explorer)
Databases
+ testbase
+ Tables
+ dbo.testtable
+ Programmability
+ Stored Procedures
+ dbo.testtable_pricesmaller
Run Code Online (Sandbox Code Playgroud)
当我收到以下错误时,我觉得很奇怪:
Could not find the …Run Code Online (Sandbox Code Playgroud) 在 SSMS 中创建表时,我意识到如果执行以下语句:
CREATE TABLE [tableName];
Run Code Online (Sandbox Code Playgroud)
该表将在您自己的架构(而不是 dbo)下创建。因此,为了在 dbo 模式下创建它,您需要明确说明,如下所示:
CREATE TABLE [dbo].[tableName];
Run Code Online (Sandbox Code Playgroud)
有谁知道一种方法(例如服务器范围的设置),以便在创建表时不需要指定 [dbo] 部分?