读书人

批删除时有有关问题

发布时间: 2012-01-11 22:28:46 作者: rapoo

批删除时有问题
批删除
'@库表名' 是定义把所有数据库表名放到这个表里 Name是表名

declare @i int
set @i=0
declare @iCount int
set @iCount=(select count(*) from @库表名)
while(@i<@iCount)

begin
set @i=@i+1
declare @fTableName nvarchar(50)
set @Name=(select Name from @库表名 where fID=@i)
delete [@Name]

end

但执行报对象名 '@Name'无效。

[解决办法]
需要sql
比如
exec('delete '+@name)
[解决办法]
--删除表
exec('drop table '+@name)

--删除数据库
exec('drop database '+@name)
[解决办法]

SQL code
declare @i int set @i=0 declare @iCount int  set @iCount=(select count(*) from @库表名)  declare @fTableName nvarchar(50) while(@i <@iCount) begin      set @i=@i+1     delete @库表名 where fID=@i) end
[解决办法]
[code=SQL][/code]


CREATE PROCEDURE s_Delete
(
@库表名 table
)
declare @i int
set @i=0
declare @iCount int
set @icount= exec('select count(*) from '+@库表名)
while(@i <@iCount)

begin
set @i=@i+1
declare @fTableName nvarchar(50)
set @Name=exec('select Name from '+@库表名 +' where fID='+ltrim(@i))
exec('delete from ' +[@Name])

end

读书人网 >SQL Server

热点推荐