联机帮助: 在 DELETE 和 SELECT 中使用 TOP 子句 由于可以在 DELETE 语句中指定 SELECT 语句,因此还可以在 SELECT 语句中使用 TOP 子句。例如,下例从 authors 表中删除前 10 个作者。DELETE authors FROM (SELECT TOP 10 * FROM authors) AS t1 WHERE authors.au_id = t1.au_id
帮我看看有什么问题:select @datarow = MAX(rowf) FROM style select @sqldatarow = 'delete load from (select top ' + @datarow + ' from load ) as t1'执行出错: 将 varchar 值 'delete load from (select top' 转换为数据类型为 smallint 的列时发生语法错误。
table: A_testdelete from A_test where A_id in (select top 10 A_id from A_test order by A_id)
select @datarow = MAX(rowf) FROM style select @sqldatarow = 'delete load from (select top ' + cast(@datarow as varchar(10))+ ' from load ) as t1'
DELETE 表 where 编号 in (SELECT TOP 10 编号 FROM authors)
在 DELETE 和 SELECT 中使用 TOP 子句
由于可以在 DELETE 语句中指定 SELECT 语句,因此还可以在 SELECT 语句中使用 TOP 子句。例如,下例从 authors 表中删除前 10 个作者。DELETE authors
FROM (SELECT TOP 10 * FROM authors) AS t1
WHERE authors.au_id = t1.au_id
select @sqldatarow = 'delete load from (select top ' + @datarow + ' from load ) as t1'执行出错:
将 varchar 值 'delete load from (select top' 转换为数据类型为 smallint 的列时发生语法错误。
select @sqldatarow = 'delete load from (select top ' + cast(@datarow as varchar(10))+ ' from load ) as t1'