Sql server 插入除某些列之外的相同行值
我有一个这样的表,但不只是5列(可能大于10列) 还有这样一个查询:Sql server 插入除某些列之外的相同行值,sql-server,database,sql-server-2008,stored-procedures,Sql Server,Database,Sql Server 2008,Stored Procedures,我有一个这样的表,但不只是5列(可能大于10列) 还有这样一个查询: DECLARE @FileName NVARCHAR(2000) SET @FileName = 'image1.eps' INSERT INTO DigitalAssets VALUES( (SELECT max(ID)+1 FROM DigitalAssets) ,(SUBSTRING(@FileName,0,LEN(@FileName)-4)+'.jpg') ,(1) ,(SELECT
DECLARE @FileName NVARCHAR(2000)
SET @FileName = 'image1.eps'
INSERT INTO DigitalAssets
VALUES(
(SELECT max(ID)+1 FROM DigitalAssets)
,(SUBSTRING(@FileName,0,LEN(@FileName)-4)+'.jpg')
,(1)
,(SELECT TOP 1 Other1 FROM DigitalAssets WHERE FileName = @FileName )
,(SELECT TOP 1 Other2 FROM DigitalAssets WHERE FileName = @FileName )
)
现在我想创建一个存储过程,它将插入相同的值,除了
id、filename和type
。我可以这样做,但有太多的列(或者我只是懒惰)。正确的方法是什么?我怀疑你的身份证被设置为真。此代码可能适合您
DECLARE @FileName NVARCHAR(2000)
SET @FileName = 'image1.eps'
INSERT INTO DigitalAssets([FileName], Type, Other1, Other2)
SELECT SUBSTRING(@FileName,0,LEN(@FileName)-4)+'.jpg',1, Other1, Other2
FROM DigitalAssets WHERE FileName = @FileName
如果不是,你可以试试这个
DECLARE @FileName NVARCHAR(2000)
SET @FileName = 'image1.eps'
INSERT INTO DigitalAssets(id, [FileName], Type, Other1, Other2)
SELECT (SELECT id
FROM DigitalAssets o1
WHERE NOT EXISTS (SELECT 1 FROM DigitalAssets o2 WHERE o2.id > o1.id))
SUBSTRING(@FileName,0,LEN(@FileName)-4)+'.jpg',1, Other1, Other2
FROM DigitalAssets WHERE FileName = @FileName
你知道插入ID有类似于身份的东西吗?
DECLARE @FileName NVARCHAR(2000)
SET @FileName = 'image1.eps'
INSERT INTO DigitalAssets(id, [FileName], Type, Other1, Other2)
SELECT (SELECT id
FROM DigitalAssets o1
WHERE NOT EXISTS (SELECT 1 FROM DigitalAssets o2 WHERE o2.id > o1.id))
SUBSTRING(@FileName,0,LEN(@FileName)-4)+'.jpg',1, Other1, Other2
FROM DigitalAssets WHERE FileName = @FileName