我有一個客戶數據庫我想添加一組卡號。在表中有多個列將是相同的,但是卡號會增加1直到完成。因此,舉例來說......我想補充禮品卡1 - 250與其它列一樣......所以想是這樣的:將多個記錄添加到表
Cardnum price booktype service
1 9.99 1 12
2 9.99 1 12
3 9.99 1 12
等等...這將重複進行,直到cardnum中是'250'是否有可能通過SQL查詢做到這一點?
謝謝。
我有一個客戶數據庫我想添加一組卡號。在表中有多個列將是相同的,但是卡號會增加1直到完成。因此,舉例來說......我想補充禮品卡1 - 250與其它列一樣......所以想是這樣的:將多個記錄添加到表
Cardnum price booktype service
1 9.99 1 12
2 9.99 1 12
3 9.99 1 12
等等...這將重複進行,直到cardnum中是'250'是否有可能通過SQL查詢做到這一點?
謝謝。
@jimdrang已經提供答案,但由於我剛剛完成了一個完整的例子,使用CREATE TABLE和一個存儲過程來完成這項工作,所以我想不妨將它發佈給任何正在尋找這條道路的人。
CREATE TABLE Cards
(
Cardnum int not null primary key,
price money not null,
booktype int not null,
service int not null
);
GO
CREATE PROCEDURE [dbo].[sp_AddCards] (
@Price money,
@BookType int,
@Service int,
@NumCards int,
@StartNum int
)
AS
BEGIN
DECLARE @CurCard int
SELECT @CurCard = @StartNum
WHILE @CurCard < @StartNum + @NumCards
BEGIN
INSERT INTO Cards (Cardnum, price, booktype, service)
VALUES (@CurCard, @Price, @BookType, @Service)
SELECT @CurCard = @CurCard + 1
END
END
GO
EXEC sp_AddCards @Price=9.99, @BookType=1, @Service=12, @NumCards=250, @Startnum=810041;
SELECT * FROM Cards;
DROP TABLE Cards;
DROP PROCEDURE sp_AddCards;
希望它有幫助!
由於該表已經存在,試試這個:
DECLARE @book INT
SET @book = 810041
WHILE (@book) < 810291
BEGIN
INSERT INTO tableName
VALUES(@book,9.99,1,12)
SET @book = @book +1
END
假設你正在使用的SQL Server 2005或更高版本以及希望從頭創建該表:
CREATE TABLE [dbo].[#books](
[id] [int] IDENTITY(1,1) NOT NULL,
[price] decimal(6,2) NULL,
[bookType] [int] NULL,
[service] [int] NULL)
INSERT INTO #books
VALUES(9.99,1,12)
GO 250
什麼RDBMS? Cardnum的一個簡單的自動增量功能就可以解決這個問題,使用250個相同的插件。 –
SQL Server。它需要成爲存儲功能嗎? WOuld就像select startnum,endnum from cardtable,而startnum> endnum?我不確定如何插入多個values..and在更新什麼「選擇」,顯然@的startnum的盈方和endnum – Shmewnix