none
菜鸟请教这样的插入语句该怎么写? RRS feed

  • 问题

  • 假设一个表,有A、B、C、D、E、F、G......等多列,我只要在前三列A、B、C插入某些的值(举个例子比如1、2、3),剩余的列都插入一个固定的值比如false,有没有什么简便的写法,ABC后面太多列了?如果像下面那样写,要剩余每一列对应“false”都要写出来,估计键盘要敲坏一个哈,夸张了~请高手指导一下,谢了!
    INSERT INTO table_name (A, B, C, ...) VALUES (1, 2, 3, ....)


    Yang

    2012年2月20日 3:22

答案

  • 或許你可以用預設值的方式來做,假設你只要插入值到ColA,ColB,ColC,其他用預設值,可以用下列程式碼來做:

    use Northwind
    go
    
    if exists (select * from sys.objects where type='U' and name='DefaultValueTable')
    	drop table DefaultValueTable
    go
    
    create table DefaultValueTable
    (
    	ColA		int
    	,ColB	int
    	,ColC	int
    	,ColD	bit default 0
    	,ColE	bit default 0
    	,ColF	bit default 0
    	,ColG	bit default 0
    )
    
    go
    
    insert into DefaultValueTable(ColA,ColB,ColC) values (1,2,3)
    
    select *
    from DefaultValueTable


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/

    • 已标记为答案 zjyh16 2012年2月20日 4:21
    2012年2月20日 3:37
  • 你可以在SSMS裡面來調整每個COLUMN的預設值。


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/

    • 已标记为答案 zjyh16 2012年2月20日 4:21
    2012年2月20日 3:50

全部回复

  • 或許你可以用預設值的方式來做,假設你只要插入值到ColA,ColB,ColC,其他用預設值,可以用下列程式碼來做:

    use Northwind
    go
    
    if exists (select * from sys.objects where type='U' and name='DefaultValueTable')
    	drop table DefaultValueTable
    go
    
    create table DefaultValueTable
    (
    	ColA		int
    	,ColB	int
    	,ColC	int
    	,ColD	bit default 0
    	,ColE	bit default 0
    	,ColF	bit default 0
    	,ColG	bit default 0
    )
    
    go
    
    insert into DefaultValueTable(ColA,ColB,ColC) values (1,2,3)
    
    select *
    from DefaultValueTable


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/

    • 已标记为答案 zjyh16 2012年2月20日 4:21
    2012年2月20日 3:37
  • 或許你可以用預設值的方式來做,假設你只要插入值到ColA,ColB,ColC,其他用預設值,可以用下列程式碼來做:

    use Northwind
    go
    
    if exists (select * from sys.objects where type='U' and name='DefaultValueTable')
    	drop table DefaultValueTable
    go
    
    create table DefaultValueTable
    (
    	ColA		int
    	,ColB	int
    	,ColC	int
    	,ColD	bit default 0
    	,ColE	bit default 0
    	,ColF	bit default 0
    	,ColG	bit default 0
    )
    
    go
    
    insert into DefaultValueTable(ColA,ColB,ColC) values (1,2,3)
    
    select *
    from DefaultValueTable


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/

    首先感谢你的回答,其中我看到你的回复中:

    create table DefaultValueTable
    (
    	ColA		int
    	,ColB	int
    	,ColC	int
    	,ColD	bit default 0
    	,ColE	bit default 0
    	,ColF	bit default 0
    	,ColG	bit default 0
    )
    这应该是在创建表时就填入预设值,可是如果表已经存在了无须再创建,该如何做呢?

    Yang

    2012年2月20日 3:43
  • 你可以在SSMS裡面來調整每個COLUMN的預設值。


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/

    • 已标记为答案 zjyh16 2012年2月20日 4:21
    2012年2月20日 3:50
  • 你可以在SSMS裡面來調整每個COLUMN的預設值。


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/

    Thank You Very Much!

    Yang

    2012年2月20日 4:21