--如果游标到了最后一条记录
FETCH NEXT FROM field_cursor
if @@FETCH_STATUS <>0
@str=@str+''
else
@str=@str+','
FETCH PRIOR FROM field_cursor
------------------------------------------
我改了一下,我先让游标移到下一行,如果无记录了,则...,然后再移到前一行.
declare table_cursor CURSOR for
select DISTINCT(表名) from tables
OPEN table_cursor
FETCH NEXT from table_cursor INTO @tablename
WHILE @@FETCH_STATUS = 0
BEGIN
declare field_cursor CURSOR for
select 字段名,字段类型,字段长度,是否为空,是否为主键 from TABLE_TEMP where 表名=@tablename
OPEN field_cursor
FETCH NEXT from field_cursor INTO @fieldname,@fieldtype,@fieldlength,@isnullstr,@iskey
WHILE @@FETCH_STATUS = 0
BEGIN
--创建字段列表字串
@str = @str + @fieldname +''+ @fieldtype +'(' +@fieldlength +')'
if @isnullstr =0
BEGIN
@str=@str + 'not null'
END
if @iskey =1
BEGIN
@str=@str + 'INDENTITY(1,1) PRIMARY KEY CLUSTERED'
END
--如果游标到了最后一条记录 ????????????
if (@@FETCH NEXT from field_cursor ) = -1
@str=@str+''
else
@str=@str+','
FETCH NEXT from field_cursor INTO @fieldname,@fieldtype,@fieldlength,@isnullstr,@iskey
END
--创建表
exec SP_EXECUTESQL("create table "+@tablename+ "(" +@str + ")")
CLOSE Field_cursor --关闭游标
DEALLOCATE field_cursor --删除游标
FETCH NEXT from table_cursor INTO @tablename
END
CLOSE table_cursor
DEALLOCATE table_cursor