zoukankan      html  css  js  c++  java
  • 关于sql server中主键的一点研究

    sql server中对于主键的查询没有直接的方法,如果使用ado.net进行查询的话,返回的结果集如果是datatable类型的,一般并不包含主键信息,需要设置MissingSchemaAction,如何在sql语句中查询主键信息,经过一番周折,终于搞出来了,下边直接贴代码吧:

    数据库代码:

    代码
    USE [TestDB]
    GO
    /****** Object:  Table [dbo].[province]    Script Date: 09/27/2010 23:11:37 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE [dbo].[province](
        
    [pid] [int] IDENTITY(1,1NOT NULL,
        
    [pname] [varchar](128NOT NULL,
        
    [posttime] [datetime] NOT NULL,
     
    CONSTRAINT [PK_province] PRIMARY KEY CLUSTERED 
    (
        
    [pid] ASC
    )
    WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ONON [PRIMARY]
    ON [PRIMARY]
    GO
    SET ANSI_PADDING OFF
    GO
    /****** Object:  Table [dbo].[testkey]    Script Date: 09/27/2010 23:11:37 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[testkey](
        
    [id] [int] NOT NULL,
        
    [pk1] [nchar](10NOT NULL,
        
    [pk2] [nchar](10NOT NULL,
        
    [pk3] [nchar](10NOT NULL,
        
    [posttime] [datetime] NULL,
        
    [pid] [int] NOT NULL,
     
    CONSTRAINT [PK_testkey] PRIMARY KEY CLUSTERED 
    (
        
    [id] ASC,
        
    [pk1] ASC,
        
    [pk2] ASC,
        
    [pk3] ASC
    )
    WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ONON [PRIMARY]
    ON [PRIMARY]
    GO
    /****** Object:  Default [DF_province_posttime]    Script Date: 09/27/2010 23:11:37 ******/
    ALTER TABLE [dbo].[province] ADD  CONSTRAINT [DF_province_posttime]  DEFAULT (getdate()) FOR [posttime]
    GO
    /****** Object:  ForeignKey [FK_testkey_province]    Script Date: 09/27/2010 23:11:37 ******/
    ALTER TABLE [dbo].[testkey]  WITH CHECK ADD  CONSTRAINT [FK_testkey_province] FOREIGN KEY([pid])
    REFERENCES [dbo].[province] ([pid])
    GO
    ALTER TABLE [dbo].[testkey] CHECK CONSTRAINT [FK_testkey_province]
    GO

     下面是我最终获取主键的方法:

    代码
    declare @tmpkey table(id varchar(64))
    declare @tablename varchar(256)
    set @tablename = 'testkey'
    declare @tmp  varchar(64)
    declare @i int
    set @i = 1
    while @i <= 16
    begin
        
    select @tmp = index_col(@tablename1@i)
        
    if not @tmp is  null
        
    insert into @tmpkey select @tmp
        
    set @i = @i + 1
    end
    select * from @tmpkey

    总结:感觉学的越多,越感觉自己无知,要学的东西还很多很多,第一篇,希望大家多多拍砖。 

  • 相关阅读:
    Java 泛型 泛型的约束与局限性
    Java 泛型 泛型方法
    Java 泛型 泛型数组
    Java 泛型 协变性、逆变性
    Java 泛型 协变式覆盖和泛型重载
    Java 泛型 泛型代码和虚拟机
    Insertion Sort List
    Remove Duplicates from Sorted List II
    String to Integer (atoi)
    SpringMvc源码入门
  • 原文地址:https://www.cnblogs.com/supperniu/p/1837189.html
Copyright © 2011-2022 走看看