とりあえずメモ。
TODO: あとで説明入れる。
BACKUP DATABASE test_db TO DISK = N'NUL';
--- 実際にバックアップする場合
--- BACKUP DATABASE test_db TO DISK='d:\backup\air.bak' WITH INIT
EXEC sp_helpfile;
BACKUP LOG test_db TO DISK = N'NUL'
DBCC SHRINKFILE ('test_db_log', 1);
--- 以下はタスク実行のコマンド
sqlcmd -S [.\SQLEXPRESS] -U [ユーザー名] -P [パスワード] -i [d:\backup.sql] > [d:\backup.log]
2014年8月7日木曜日
2014年7月1日火曜日
SQL Server 2012 で IDENTITY の値を再設定する
SQL Server 2012 にて、IDENTITY の値をリセットまたは任意の値にする場合、
以下のクエリを実行する。
--- テーブル hoges の IDENTITY の値を 1 に再設定する。
--- テーブル hoges の IDENTITY の値を確認する。
--- テーブル hoges の IDENTITY の値を 1 に再設定する。
DBCC CHECKIDENT ('hoges', RESEED, 1) WITH NO_INFOMSGS
--- テーブル hoges の IDENTITY の値を確認する。
DBCC CHECKIDENT ('hoges', NORESEED );
2014年6月9日月曜日
Access 2010 / Access 2013 (SQL Server を使用時)のメモ
Access 2013 で ADP がなくなり、 SQL Server からどのようにデータを取得するか困る。
クライアントに ODBC を登録してリンクテーブルする方法にしようとするも、台数が多く面倒なので、
以下 Access から ODBC に登録せずに SQL Server からデータを読み込む方法を検討中。
a) パススルークエリを使用する
b) クエリでテーブルを以下のように指定する(DAO、クエリ で使用)
c) VBA から ADO を使って直接取得する
フォームの Recordset に直接 c) で設定した Recordset を入れたところエラーになるので、
b) の方法で設定した DAO の Recordset をフォームに設定するようにした。
普通にリンクテーブルを使うよりも若干表示等が早くなった気がするものの、この方法が良いかどうかは検証および検討中。
なおフォーム以外のコントローラーの Recordsource に対しては ADO は従来通り使える模様。
クライアントに ODBC を登録してリンクテーブルする方法にしようとするも、台数が多く面倒なので、
以下 Access から ODBC に登録せずに SQL Server からデータを読み込む方法を検討中。
a) パススルークエリを使用する
Microsoft の以下「パススルー クエリを使用してデータベース サーバーで SQL を処理する」を参照 Access 2010, 2013 でもほぼ同じ
http://office.microsoft.com/ja-jp/access-help/HA010206488.aspx
b) クエリでテーブルを以下のように指定する(DAO、クエリ で使用)
例: データベース名: TESTDB, ユーザー: test_user パスワード: test_pwd テーブル名: samples の場合
SELECT s.* FROM [ODBC;DSN=TESTDB;DATABASE=TESTDB;UID=test_user;PWD=test_pwd].samples s
c) VBA から ADO を使って直接取得する
フォームの Recordset に直接 c) で設定した Recordset を入れたところエラーになるので、
b) の方法で設定した DAO の Recordset をフォームに設定するようにした。
普通にリンクテーブルを使うよりも若干表示等が早くなった気がするものの、この方法が良いかどうかは検証および検討中。
なおフォーム以外のコントローラーの Recordsource に対しては ADO は従来通り使える模様。
2012年3月30日金曜日
ASP.NET ( IBatis.NET ) から SQL Server 2008 への接続について
IBatis.NET にて、
# sqlmap.config
# sqlmap.config
<provider name="sqlServer2.0"/>
<dataSource name="lec2" connectionString="Persist Security Info=False;Data source=(local)\SQLEXPRESS;Initial Catalog=xxxx;User ID=xxxxx;Password=xxxxx;" />
# provider.config
<provider
name="sqlServer2.0"
enabled="true"
description="Microsoft SQL Server, provider V2.0.0.0 in framework .NET V3.5"
assemblyName="System.Data, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089"
connectionClass="System.Data.SqlClient.SqlConnection"
commandClass="System.Data.SqlClient.SqlCommand"
parameterClass="System.Data.SqlClient.SqlParameter"
parameterDbTypeClass="System.Data.SqlDbType"
parameterDbTypeProperty="SqlDbType"
dataAdapterClass="System.Data.SqlClient.SqlDataAdapter"
commandBuilderClass=" System.Data.SqlClient.SqlCommandBuilder"
usePositionalParameters = "false"
useParameterPrefixInSql = "true"
useParameterPrefixInParameter = "true"
parameterPrefix="@"
allowMARS="true"
/>
上記でも接続できなかったので Windows ファイアーウォールで TCP/UDP 1433 の確認と「SQL Server 構成ツール」の 「SQL Server 構成マネージャー」のTCPおよび名前付きパイプが有効になっているか確認。
> どうも TCP は関係無かった模様…
それでも繋がらなかったので色々と見直し悩んだ結果、上記 sqlmap.config の dataSource の接続文字列で data source=(local)\SQLEXPRESS; の所を data source=(local)/SQLEXPRESS; としていたのが原因と分かる。
気づくまで 1時間30分ぐらい掛かった・・・。
環境: Windows 2008 r2 (64bit), IIS 7.5, SQL Server 2008 r2 Express, .NET Framework 3.5
登録:
投稿 (Atom)