テーブルが10個あり、各テーブルのレコード数を示す簡単なLOGエントリを作成する必要があります。TSQL - Count(*)..をVarchar変数に選択
Declare @msg Varchar(MAX)
Set @msg = 'Process Succeeded; Table1 has xx record, Table2 has zz records, Table3 has ww records ...'
Insert INTO LOG (msg) VALUES (@msg)
テーブルが10個あり、各テーブルのレコード数を示す簡単なLOGエントリを作成する必要があります。TSQL - Count(*)..をVarchar変数に選択
Declare @msg Varchar(MAX)
Set @msg = 'Process Succeeded; Table1 has xx record, Table2 has zz records, Table3 has ww records ...'
Insert INTO LOG (msg) VALUES (@msg)
かにそれをロールアップ:
declare @Summary as VarChar(256)
select @Summary =
'Foo: ' + Cast((select Count(42) from Foo) as VarChar(10)) +
', Bar: ' + Cast((select Count(42) from Bar) as VarChar(10))
select @Summary
よう
何かがSQL Serverが現在string.Format
のようなもののためにあらゆるサポートを持っていないので、あなたがしなければならない。
DECLARE @msg VARCHAR(MAX)
DECLARE @Table1Count INT
SELECT @Table1Count = COUNT(*) FROM dbo.Table1
DECLARE @Table2Count INT
SELECT @Table2Count = COUNT(*) FROM dbo.Table2
..... and so forth for each table you want to consider
SET @msg = 'Process Succeeded; ' +
'Table1 has ' + CAST(@Table1Count AS VARCHAR(10)) + ' rows, ' +
'Table2 has ' + CAST(@Table2Count AS VARCHAR(10)) + ' rows...' + ........
Insert INTO LOG (msg) VALUES (@msg)
を今、SQL Serverで、これは苦痛ですそのため、これらのカウントをフロントエンドのアプリに戻し、そこに書式設定とログを書き込むほうがずっと簡単かもしれません。
来る機能について聞いてよかった....ありがとう。 –
はもちろん
Declare @msg Varchar(2000)
,@table1count varchar (100)
,@table2count varchar (100)
Select @table1count= cast(count(*) as varchar (100)) from table1
Select @table2count= cast(count(*) as varchar (100)) from table2
Set @msg = 'Process Succeeded; Table1 has '[email protected] +' records, Table2 has '[email protected]+' records, ...'
Insert INTO LOG (msg) VALUES (@msg)
試してみてください私はあなたの最初の2つのテーブルを与え、あなたは残りのTEH同じtechiniqueを使用することができます。
WOW!カウントを保持するために 'varchar(100) 'が必要な場合、あなたのテーブルはどれくらい大きいですか? :-) –
私はちょうどそれをやっていた。私の応答の元々のvarchar(最大) – HLGEM
に実際には..私はまだそれについて笑っている(hehe) –
質問は何ですか? –