我是SQL和SQL Server的新手,没有任何先前的IT知识。但是我试着从爱它中学习SQL Server。我的问题很简单。我在使用sql代码创建表时遇到问题。我想从另一个表new_table
创建一个名为old_table
的表。我的代码是:
CREATE TABLE new_table
AS (SELECT * FROM old_table)
但它出现以下错误:Msg 102, Level 15, State 1, Line 2 Incorrect syntax near '('.
我做了很多事但却无法弄清问题是什么。请问任何人可以指导我出现什么问题?
答案 0 :(得分:2)
SELECT * INTO new_table
FROM SourceTable
new_table
必须不存在。
回应你的评论:
SELECT * INTO dbo.new_table
FROM (SELECT DISTINCT col1 FROM old_table) tmptable
答案 1 :(得分:1)
CREATE TABLE new_table AS
在SQL Server中无效。 (这回答了你问的问题,关于问题是什么。)
Microsoft SQL Server(T-SQL)中提供了等效功能,但它使用的是不同的T-SQL语法:
SELECT * INTO new_table FROM old_table
这将允许您创建包含现有表中所有列和行的新表。
http://msdn.microsoft.com/en-us/library/ms188029(v=sql.105).aspx
答案 2 :(得分:1)
如果您只需要表格结构(没有数据),请包括前0
SELECT TOP 0 * INTO new_table FROM old_table