查询在SQL中为特定数据库创建新表?

时间:2014-03-18 07:46:24

标签: sql-server database

我有3个数据库sytemdatabasessmoketestlearnqueries

每次编写和执行create table query (create table tablename (colname datatype(size)))时,都会在systemdatabases中创建一个新表。

我需要将它创建为smoketest数据库。 我尝试了这个查询(create table smoketest.newtablename(number int,name varchar(50));

It is showing an error (Msg 2760, Level 16, State 1, Line 1

指定的模式名称“smoketest”或者不存在,或者您没有权限使用它。)当我执行它时。

它说有2次机会

  1. 数据库不存在 - 但数据库存在
  2. 没有权限 - 这是什么意思 - 如何设置创建权限 新表到特定数据库
  3. 请帮忙

2 个答案:

答案 0 :(得分:10)

USE smoketest
GO

create table newtablename(number int,name varchar(50));

如果您有权限问题,请查看此SQL Server 2008: how do I grant privileges to a username?

希望这有帮助。

答案 1 :(得分:9)

表的SQL Server中的4 part 'dot' notation

Server.Database.Schema.Object

因此,如果smoketest不是您连接上的当前数据库,则需要创建至少包含3个部分的表格,例如:如果您在master,并假设您想要架构dbo中的新表:

create table smoketest.dbo.Tablename(ID INT)

或者,切换到smoketest数据库并使用1或2部分命名创建表:

use smoketest
GO
create table dbo.Tablename(ID INT)
GO