sql 2008 r2
請看語句:
alter table #t add col2 int
update #t
set col2 = 0
報錯:列名'col2'無效。
但如果緊接的是select,一切正常,可以發現col2成功新增到表中。
非要接update的話,必須在alter後go一下,不然報錯無懸念。
請問:能不能不go,也能update。因為前面我定義了很多變數,一go回到解放前,不甘心。
可以通過exec ,把update的執行計畫生成放到執行時進行
alter table #t add col2 int
exec('
update #t
set col2 = 0
sql 的執行,是先分析並生成執行計畫,再做實際的執行
當你把 alter table 和 update 放在一齊的時候,在分析並生成執行計畫這步,由於列不存在,所以無法為 update 生成執行計畫,所以就報錯了
所以最好的習慣是用go代替分號,養成好習慣
注意使用go的時候需換行
附sql server 增加字段、修改字段、修改型別、修改預設值
1、修改欄位名:
alter table 表名 rename column a to b
2、修改字段型別:
alter table 表名 alter column 欄位名 type not null
3、修改字段預設值 alter table 表名 add default (0) for 欄位名 with values
如果欄位有預設值,則需要先刪除欄位的約束,在新增新的預設值,
select c.name from sysconstraints a inner join syscolumns b on a.colid=b.colid inner join sysobjects c on a.constid=c.id where a.id=object_id('表名') and b.name='欄位名'
根據約束名稱刪除約束
alter table 表名 drop constraint 約束名
根據表名向字段中增加新的預設值
alter table 表名 add default (0) for 欄位名 with values
4、增加字段:
alter table 表名 add 欄位名 type not null default 0
5、刪除字段:
alter table 表名 drop column 欄位名;
1、修改欄位名:
alter table 表名 rename column a to b
2、修改字段型別:
alter table 表名 alter column 欄位名 type not null
3、修改字段預設值 alter table 表名 add default (0) for 欄位名 with values
如果欄位有預設值,則需要先刪除欄位的約束,在新增新的預設值,
select c.name from sysconstraints a inner join syscolumns b on a.colid=b.colid inner join sysobjects c on a.constid=c.id where a.id=object_id('表名') and b.name='欄位名'
根據約束名稱刪除約束
alter table 表名 drop constraint 約束名
根據表名向字段中增加新的預設值
alter table 表名 add default (0) for 欄位名 with values
4、增加字段:
alter table 表名 add 欄位名 type not null default 0
5、刪除字段:
alter table 表名 drop column 欄位名;
DB2 alter 新增 刪除 修改列
掃碼加入qq群。免費獲取一手資料。還有福利發放哦!sql語句 增加列 修改列 刪除列 1 新增字段 語法 alter table 表名稱 add 欄位名稱 型別 demo alter table tablename add columnname varchar 50 2 更改字段型別 或者字段長度 ...
PrefsActivity修改配置後立即生效。
extends preferenceactivity implements sharedpreferences.onsharedpreferencechangelistener 這樣的activity需要覆蓋方法 public void onsharedpreferencechanged share...
sql 新增列,刪除列
新增沒有預設值 alter table 表名 add bazaartype char 1 有預設值的新增列 alter table表名add bazaartype char 1 default 0 刪除沒有預設值的列 alter table 表名drop column bazaartype 刪除有預...