Microsoft SQL Server

Express にリモート接続

SQL Server 2008 Express にリモート接続するには、Server 側の Firewall で以下のプロセスを受信可にせなければならない。 sqlservr.exe sqlbrowser.exe あと Sql Server Configuration Manager で TCP/IP の設定を行う必要があります。[SQL Server ネット…

Backup

Visual Basic .NET でデータベースおよびトランザクション ログをバックアップする方法 | Microsoft Docs にある Backup クラスが無ーい。と探してたら、Microsoft.SqlServer.SmoExtended.dll にあった。何でやねん。

テーブルのサイズ

テーブルのサイズやインデックスのサイズを表示する SQL 文です。 create table #t ( name nvarchar(256), rows int, reserved nvarchar(256), data nvarchar(256), index_size nvarchar(256), unused nvarchar(256) ) declare c cursor fast_forward for se…

テーブル名リストを得る

select name from sys.tables 出力例 name Customers Shippers Suppliers Orders Products

テーブル名からカラム名と型を得る

select columns.name, types.name from sys.columns join sys.types on ( columns.system_type_id = types.system_type_id and types.user_type_id <> 256 ) where object_id = object_id('Employees') order by column_id 出力例 columnNametypeName namena…

テーブル名からカラム数を得る

select count(*) from sys.columns where object_id = object_id(@tablename) 参照: http://oshiete1.goo.ne.jp/qa4455485.html

主キーがサーバ生成のテーブルへの挿入

主キーが uniqueidentifier のテーブルで、かつその値をデータベースの規定値で挿入しようと思いました。 で、Linq to SQL で insert しようとすると、そのフィールドを null にすると、System.Data.SqlClient.SqlException が送出されるんです。 メッセージ…

月末・月初

yymmdd形式で与えられた日付から、月末および月初を取得するSQLです。 -- 対象文字列 declare @ymd nvarchar(6); set @ymd = '090500'; -- 月初 declare @bom datetime; set @bom = convert(datetime, substring(@ymd, 1, 2) + substring(@ymd, 3, 2) + '01'…

データベースファイル一覧

SQL Server でデータベース名とデータベースファイル名の一覧を出力するクエリです。 select sys.databases.name, type_desc, size, physical_name from sys.databases, sys.master_files where sys.databases.database_id = sys.master_files.database_id; …