IDENTITYフィールドへの値の追加
通常IDENTITYのフィールドに値を追加することは出来ないが、IDENTITY_INSERTをONにすることで追加できる。
SET IDENTITY_INSERT [テーブル名] ON
INSERT INTO [テーブル名] (フィールド1,フィールド2,…) VALUES (1,"TEST",・・・)
SET IDENTITY_INSERT [テーブル名] OFF
ただし、VALUESでは無くSELECT句で指定する場合でも、フィールド名を明示的に指定する必要がある。
まったく同じ内容のテーブルを全て追加する場合でも指定しないとダメらしい。
SET IDENTITY_INSERT [テーブル名] ON
INSERT INTO [テーブル名] (フィールド1,フィールド2,…) SELECT * FROM T_TEST
SET IDENTITY_INSERT [テーブル名] OFF
重複を削除するSQL
delete from TABEL1
where exists(
select *
from TABEL1 as t1
where TABEL1.[KEY]=t1.[KEY]
group by t1.[KEY]
having COUNT(*)>1 and TABEL1.[no]<>min(t1.[no])
)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
delete from TABLE1 の TABLE1 に名前をつけることは出来ないみたい。
(select の場合はつけても大丈夫みたい)
サブクエリーの方は名前をつけなければダメ。
CheckBoxがあるときのフォーカス復帰
CheckBox には今まで使っていたプログラムではポストバックから帰ってきたときのフォーカスの復帰が出来なかった。
原因はCheckBoxにonFocusを入れようとすると<span>でくくられてそこに入っていたから。
例)
<span onfocus="〜〜〜"><input id="CheckBox1" type="checkbox" name="CheckBox1" /></span>
そこでCheckBoxには他のコントロールとは別にonFocusをセットする為に文中の2行を加える
↓これ
Const SCRIPT_ONFOCUS_BY_CHECKBOX As String = "var elements = document.getElementsByTagName('input');" & _
"function onfocusHandler(){document.getElementById('__LASTFOCUS').value=document.activeElement.id;document.getElementById('txtLastFocus').value=document.getElementById('__LASTFOCUS').value;}" & _
"for (var i = 0; i < elements.length; i++) {if (elements[i].type == 'checkbox') {elements[i].attachEvent('onfocus', onfocusHandler);}}"
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack() Then
HookOnFocus(CType(Me.Page, Control))
End If
↓これ
ScriptManager.RegisterStartupScript(Me.Page, Me.GetType(), "ScriptOnFocusByCheckBox", SCRIPT_ONFOCUS_BY_CHECKBOX, True)
ScriptManager.RegisterStartupScript(Me.Page, Me.GetType(), "ScriptDoFocus", SCRIPT_DOFOCUS.Replace("REQUEST_LASTFOCUS", Request("__LASTFOCUS")), True)
End Sub
CheckBoxの場合thi.idでは名前が取得出来ないようなのでアクティブはコントロールのidを取得する為にdocument.activeElement.idに変更
document.getElementById('__LASTFOCUS').value=document.activeElement.id;