您的位置:程序门 -> ms-sql server -> 基础类



******sql语句生成1000条数据的时遇到的问题,请高手看看(第一个答对的给分)@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


******sql语句生成1000条数据的时遇到的问题,请高手看看(第一个答对的给分)$$$$$$$
发表于:2007-02-06 15:52:45 楼主
use   pages   pages是我建的数据库


create   table   millionnews       //我建的表

productid   int   identity(1,1)   not   null,   //产品编号

productname   char(100), //产品名称

unitprice   money //单价
 
)
go


//以下,我想生成1000条数据,但是成生后,发现产品名称变成了“产品                 1”中间有8个空格,这是怎么回事,请高手帮忙解决
declare   @@i   int
set   @@i=1
while   @@i <=1000
begin
insert   into   millionnews   (productname,unitprice)   values   ( '产品 '+str(@@i),11)
set   @@i=@@i+1
end

//对了,哪个高手能在begin   end中用set   @sql= 'insert   into   …… '和EXEC(@sql)来实现上面我想要效果,我不太会用sql,请您多多帮助。
发表于:2007-02-06 15:53:461楼 得分:0
up
发表于:2007-02-06 15:53:542楼 得分:0
up
发表于:2007-02-06 15:54:003楼 得分:0
up
发表于:2007-02-06 15:56:444楼 得分:0
up
发表于:2007-02-06 15:56:505楼 得分:0
up
发表于:2007-02-06 15:56:576楼 得分:0
up
发表于:2007-02-06 15:58:367楼 得分:0
create   table   millionnews       //我建的表

productid   int   identity(1,1)   not   null,   //产品编号

productname   varchar(100), //产品名称

unitprice   money //单价
 
)
go
发表于:2007-02-06 15:59:588楼 得分:0
create   table   millionnews      

productid   int   identity(1,1)   not   null,  

productname   varchar(100),

unitprice   money
 
)
go

declare   @i   int
set   @i=1
while   @i <=1000
begin
insert   into   millionnews   (productname,unitprice)   values   ( '产品 '+str(@i),   11)
set   @i=@i+1
end
发表于:2007-02-06 16:00:459楼 得分:0
create   table   millionnews      

productid   int   identity(1,1)   not   null,  

productname   varchar(100),

unitprice   money
 
)
go

declare   @i   int
set   @i=1
while   @i <=1000
begin
insert   into   millionnews   (productname,unitprice)   values   ( '产品 '+rtrim(@i),   11)
set   @i=@i+1
end
发表于:2007-02-06 16:01:2310楼 得分:0
--用最後一個吧
发表于:2007-02-06 16:01:4111楼 得分:0
marco08(天道酬勤),谢谢回贴,不知道如何用set   @sql= 'insert   into   …… '和EXEC(@sql)来实现上面的效果
发表于:2007-02-06 16:03:5412楼 得分:0
set   @sql= 'insert   into   …… '和EXEC(@sql),我已前用过的,只是没有往里面加过变量,这一次一加变量就错,请您指教
发表于:2007-02-06 16:11:1913楼 得分:0
up
发表于:2007-02-06 16:15:2314楼 得分:0
marco08(天道酬勤)   ,大哥,您还在否?请您再帮帮忙啊
发表于:2007-02-06 16:15:4815楼 得分:0
marco08(天道酬勤)   ,大哥,您还在否?请您再帮帮忙啊
发表于:2007-02-06 16:15:5616楼 得分:0
marco08(天道酬勤)   ,大哥,您还在否?请您再帮帮忙啊
发表于:2007-02-06 16:35:0217楼 得分:0
up
发表于:2007-02-06 16:35:1118楼 得分:0
up
发表于:2007-02-06 16:35:1919楼 得分:0
up
发表于:2007-02-06 22:11:0720楼 得分:0
insert   into   millionnews   (productname,unitprice)  
select   productname= '产品 '+rtrim(tmp.id),   tmp.unitprice
from

select   top   1000   id=(select   count(*)   from   master.dbo.sysobjects   where   id <=tmp.id),   unitprice=11
from   master.dbo.sysobjects   tmp
order   by   1
)tmp
发表于:2007-02-07 10:11:5321楼 得分:0
路过学习:)marco08(天道酬勤)   厉害
发表于:2007-02-07 10:44:5722楼 得分:0
create   table   millionnews      

productid   int   identity(1,1)   not   null,  

productname   char(100),

unitprice   money
)
go
declare   @@i   int
set   @@i=1
while   @@i <=1000
begin
insert   into   millionnews   (productname,unitprice)   values   ( '产品 '+ltrim(str(@@i)),11)
set   @@i=@@i+1
end

( '产品 '+ltrim(rtrim(str(@@i)))这里转换的时候一定要记得去掉转换后左右两边的的所有空格。
发表于:2007-02-07 11:29:3623楼 得分:0
declare   @i   int
set   @i=1
declare   @sql   nvarchar(200)
while   @i <=1000
begin
insert   into   millionnews(productname,unitprice)   values( '产品 '+convert(varchar(10),@i),11)


--EXEC(@sql)
set   @i=@i+1
end
---------------------------------------------


(所影响的行数为   1   行)


(所影响的行数为   1   行)


(所影响的行数为   1   行)


(所影响的行数为   1   行)


(所影响的行数为   1   行)


(所影响的行数为   1   行)


(所影响的行数为   1   行)


(所影响的行数为   1   行)

发表于:2007-02-07 11:47:4024楼 得分:0
---换个函数麻!
declare   @@i   int
set   @@i=1
while   @@i <=1000
begin
print   '产品 '+cast(@@i   as   char(4))
set   @@i=@@i+1
end


快速检索

最新资讯
热门点击