如何創建一個重複表格,並且只有在SQL Server 2008中使用新名稱重複的結構?如何在SQL Server 2008中使用新名稱創建重複表格
我有45個字段的表,所以我想創建新的具有相同的結構,但新的名稱。
如何創建一個重複表格,並且只有在SQL Server 2008中使用新名稱重複的結構?如何在SQL Server 2008中使用新名稱創建重複表格
我有45個字段的表,所以我想創建新的具有相同的結構,但新的名稱。
右鍵單擊SQL Management Studio中的表。
選擇腳本...創建到...新的查詢窗口。
這將生成一個腳本來在新的查詢窗口中重新創建表格。
將腳本中表的名稱更改爲想要命名新表的任何內容。
執行腳本。
SELECT *
INTO target
FROM source
WHERE 1 = 2
這隻會捕獲一些結構。相同的列名稱,數據類型和可爲空的設置。但其他一切都會被拋在後面。在我留下的頭頂留下的東西將包括PK,英國,FK和檢查約束,身份屬性和計算列。這取決於OP需要多少結構來滿足OP的需求。 – 2010-07-13 23:17:44
where子句是可選的。 – Dhinakar 2013-03-16 04:07:28
爲什麼'1 = 2'?這永遠是假的嗎? – 2014-07-14 23:48:02
我的SQL Server Management Studio不斷問我如何讓它變得更好,我有一個主意!突出顯示錶格的能力,然後按ctrl c,ctrl V!會很好,同時也是這個問題的答案!
您是否正在通過發明一項新功能來回答問題,並表示會解決問題? – Yunnosch 2017-05-26 06:23:22
對於從一個表從現有表創建一個新的表
SELECT * INTO NEW_TABLE FROM OLD_TABLE
插入數據的另一個表
插入Table_Name2選擇頂部1 *從Table_Name1
歡迎來到StackOverflow並感謝您的幫助。請解釋你的答案的主要觀點,代碼只是沒有那麼有用。特別是,有一個與您的答案几乎完全相同的答案。它只是避免複製內容。不做複製價值似乎是OP期望的行爲的一部分。你能解釋你的理由嗎? – Yunnosch 2017-05-26 06:27:03
在這裏,我會告訴你2個不同的實現:
第一個:
如果你只需要創建一個重複表,然後只需運行命令:
SELECT top 0 * INTO [dbo].[DuplicateTable]
FROM [dbo].[MainTable]
當然,它完全不起作用。約束不會被複制,也不會執行主鍵或默認值。該命令僅創建一個具有相同列結構的新表,並且您要將數據插入到新表中。
二(推薦):
,但如果你要複製的表的所有約束&鍵遵循以下步驟如下:
SELECT * INTO newtable FROM oldtable where 1=2
where 1=2, this statement is use when only Copy complete structure of a
table in sql without Copying data of table
SELECT * INTO newtable FROM oldtable
create table with data you can use this statement
可笑,即使在2012年!感謝Avalanchis! – Bojangles 2015-07-07 07:26:32