Sql server 插入除某些列之外的相同行值

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

我有一个这样的表,但不只是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 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