• sql server 2005下奇怪的Delete Top 语句


    sql server 2005中Delete语句可以添加一个top参数

    以下示例删除 Testdb 表中所有行的 10%。 

    --生成测试数据库
    Create database Testdb
    go
    USE [Testdb]
    GO
    --生成测试表
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[TestDelete](
        
    [PKID] [int] IDENTITY(1,1NOT NULL,
        
    [TestID] [int] NULL,
        
    [testString] [nvarchar](50NULL,
     
    CONSTRAINT [PK_TestDelere] PRIMARY KEY CLUSTERED 
    (
        
    [PKID] ASC
    )
    WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ONON [PRIMARY]
    ON [PRIMARY]
    go
    --插入测试数据
    declare @tmpID int 
    set @tmpID=1
    WHILE ( (SELECT max(PKID) FROM TestDelete)<2000 )
    BEGIN
        
    set @tmpID=@tmpID+2
        
    insert into [TestDelete] ([TestID],[testString]values(@tmpID,cast(@tmpID as nvarchar(10)))
        
    CONTINUE
    END

    select count(*from TestDelete
    go
    --删除测试数据
        --以下示例删除 Testdb 表中所有行的 10%。
    DELETE TOP (10PERCENT FROM TestDelete
    GO
    --下面这句执行错误
    --
    --DELETE TOP (10) PERCENT FROM TestDelete order by PKID desc 
    --
    --GO
    select count(*from TestDelete
    go

    --删除测试数据库
    --
    --drop database  Testdb
    --
    --go



    微软的开发人员真的很奇怪?不得而知。一个奇怪的语句。

    邀月注:本文版权由邀月和博客园共同所有,转载请注明出处。
    助人等于自助!  3w@live.cn
  • 相关阅读:
    (14) go 结构体
    (13) go map
    (12) go make初始化
    (11)go 数组和切片
    (10) go 错误
    (9) go 时间日期
    (8)go 字符串
    (7) go 函数
    (6) go 流程控制
    (5) go 格式化输入输出 类型转换
  • 原文地址:https://www.cnblogs.com/downmoon/p/1021154.html
Copyright © 2020-2023  润新知