程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 生成50萬條記錄的大數據表的TSQL語句

生成50萬條記錄的大數據表的TSQL語句

編輯:Oracle數據庫基礎
經常做數據庫訪問性能測試時,需要用到數據量很大的表,自己動手寫一段TSQL語句即可。

TSQL_生成表結構:
/**//****** 對象: 表 [dbo].[LargeTable]    腳本日期: 2006-10-26 15:40:27 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[LargeTable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[LargeTable]
GO

/**//****** 對象: 表 [dbo].[LargeTable]    腳本日期: 2006-10-26 15:40:27 ******/
CREATE TABLE [dbo].[LargeTable] (
    [ID] [int] IDENTITY (1, 1) NOT NULL ,
    [Title] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
    [Content] [ntext] COLLATE Chinese_PRC_CI_AS NULL ,
    [PublicTime] [datetime] NULL ,
    [Author] [nvarchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
    [IsTop] [tinyint] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

ALTER TABLE [dbo].[LargeTable] WITH NOCHECK ADD
    CONSTRAINT [PK_LargeTable] PRIMARY KEY  CLUSTERED
    (
        [ID]
    )  ON [PRIMARY]
GO

ALTER TABLE [dbo].[LargeTable] ADD
    CONSTRAINT [DF_LargeTable_IsTop] DEFAULT (0) FOR [IsTop]
GO


exec sp_addextendedproperty N'MS_Description', N'作者', N'user', N'dbo', N'table', N'LargeTable', N'column', N'Author'
GO
exec sp_addextendedproperty N'MS_Description', N'內容', N'user', N'dbo', N'table', N'LargeTable', N'column', N'Content'
GO
exec sp_addextendedproperty N'MS_Description', N'文章表,包含100萬條記錄', N'user', N'dbo', N'table', N'LargeTable', N'column', N'ID'
GO
exec sp_addextendedproperty N'MS_Description', N'是否置頂 0.不置頂 1.置頂', N'user', N'dbo', N'table', N'LargeTable', N'column', N'IsTop'
GO
exec sp_addextendedproperty N'MS_Description', N'發布時間', N'user', N'dbo', N'table', N'LargeTable', N'column', N'PublicTime'
GO
exec sp_addextendedproperty N'MS_Description', N'文章標題', N'user', N'dbo', N'table', N'LargeTable', N'column', N'Title'


GO


TSQL_生成表數據:

/**//*truncate table largetable*/

declare @title nvarchar(100)
declare @content nvarchar(100)
declare @publictime datetime
declare @author nvarchar(10)
declare @istop tinyint

declare @randtime_month tinyint
declare @randtime_day tinyint
declare @randtime_hour tinyint
declare @randtime_minute tinyint
declare @randtime_second tinyint

declare @str varchar(30)

print '開始執行時間:' + cast(getdate() as varchar)
declare @i int,@count int
set @i=1
set @count=500000
while @i<=@count
begin
    set @randtime_month=rand(@i)*12
    set @randtime_day=rand(@i)*28
    set @randtime_hour=rand(@i)*24
    set @randtime_minute=rand(@i)*60
    set @randtime_second=rand(@i)*60
    set @str='2006-'+cast(@randtime_month as varchar)+'-'+cast(@randtime_day as varchar)+' '+cast(@randtime_hour as varchar)+':'+cast(@randtime_minute as varchar)+':'+cast(@randtime_second as varchar)
   
    set @title='文章標題'+cast(@i as varchar)
    set @content='文章內容'+cast(@i as varchar)
    set @publictime=convert(datetime,@str,120)
    set @author='作者'+cast(@i as varchar)
    if @i%10000=0
        set @istop=1
    else
        set @istop=0

    insert into largetable values(@title,@content,@publictime,@author,@istop)
   
    set @i=@i+1
end
print '執行完畢時間:' + cast(getdate() as varchar)

http://www.cnblogs.com/jiny-z/archive/2006/10/26/540801.Html

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved