当我在SQL Server中创建一个表并保存它时,如果我尝试编辑表设计,比如将列类型从int更改为real,我会收到以下错误:
不允许保存更改.您所做的更改需要删除并重新创建下表.您已对无法重新创建或启用的表进行了更改,该选项会阻止保存需要重新创建表的更改.
为什么我要重新创建表?我只想将数据类型更改smallint为real.
该表是空的,直到现在我才使用它.
有没有办法从现有表克隆表定义并重新创建为表变量?
DECLARE @TempTable1 TABLE (ID INT, Description VARCHAR(256))
Run Code Online (Sandbox Code Playgroud)
我需要重新创建一组具有相同列数和定义的表,而不重复该DECLARE TABLE语句.
此过程在MySQL上可用,如下所示.
CREATE TABLE TempTable1 LIKE TempTableMain;
Run Code Online (Sandbox Code Playgroud)
有可能这样做是Microsoft SQL Server吗?
请注意,实际场景中包含的列@TempTable数超过60列,需要从原始表创建10个以上的实例.
我不是在谈论数据插入或SELECT来自另一个表的离子,如下所示.我需要创建表定义.
DECLARE @TempTable TABLE(ID INT, Description VARCHAR(100))
INSERT INTO @TempTable
VALUES (1, 'Test1'), (1, 'Test1');
SELECT *
INTO @TempTable2
FROM @TempTable1
SELECT * FROM @TempTable2
Run Code Online (Sandbox Code Playgroud)