Kyl*_*yle 3 sql sql-server-2008 sql-server-2008-r2
我正在尝试创建一个存储过程,该行将使用列a,b,c,d,其中id = @id,并插入一个具有相同a,b,c值的新行,但d将不同.
在这种情况下,大约有50列,但只有一列需要不同.
假设d是一个INT,你想插入,15而不是插入任何内容dbo.oldtable,然后:
INSERT dbo.newtable(a,b,c,d)
SELECT a,b,c,d = 15
FROM dbo.oldtable
WHERE id = @id;
Run Code Online (Sandbox Code Playgroud)
更可能是变量,所以:
INSERT dbo.newtable(a,b,c,d)
SELECT a,b,c,d = @whatever
FROM dbo.oldtable
WHERE id = @id;
Run Code Online (Sandbox Code Playgroud)
抱歉,没有简写说"除了d之外的所有列"......你需要单独列出它们.如果键入是问题,有一个简单的方法来处理.打开对象资源管理器,展开您的服务器,数据库,表和相关表,然后将列节点拖到查询窗口中:

现在,您只需d要从该列表中删除该列.