IF EXISTS (SELECT * FROM Table1)
BEGIN
...............
END
ELSE
BEGIN
.............
END
IF EXISTS (SELECT * FROM Table1)
BEGIN
...............
END
ELSE
BEGIN
.............
END
一台買來全新的 Acer 筆電,只灌了些基本的程式,MSN就突然沒辦法連,用MSN上的連線排解,會告訴你是埠(PORT)的問題,用關鍵字估狗會找到很多的解決方式,結果 ==> 全都無效,後來我發現不只是 MSN,連小紅傘防毒軟體都無法更新病毒碼,FTP也沒辦法上,搞了一下午我才找到罪魁禍首,是該死的諾頓 Norton。
原來的NB上附有Norton 360 試用版,因為只能用半年我把它移了,改裝德國小紅傘,但沒想到一般的新增/移除不能完全把它移除乾淨(好狠的Norton,不用我就把你網路切了),還要到他的網站上下載專用的移除工具才行(該死的,還脫褲子放屁),如果你也遇到相同的問題,可以用下面的連結下載移除工具,或是用關鍵字 "Norton Removal Tool" 查詢下載網址。
不過好笑的是,它的檔案放FTP上,所以你得用另一台電腦來下載才行,真的是氣爆了。
PS: 移除之後一切風平浪靜。
簡短語法
DUMP TRANSACTION Northwind WITH NO_LOG
完整語法
SET NOCOUNT ON
DECLARE @LogicalFileName sysname,
@MaxMinutes INT,
@NewSize INT
USE Northwind -- 要操作的資料庫名
SELECT @LogicalFileName = 'Northwind_Log', -- 日誌文件名
@MaxMinutes = 10, -- Limit on time allowed to wrap log.
@NewSize = 100 -- 你想設定的日誌文件的大小(M)
-- Setup / initialize
DECLARE @OriginalSize int
SELECT @OriginalSize = size
FROM sysfiles
WHERE name = @LogicalFileName
SELECT 'Original Size of ' + db_name() + ' LOG is ' +
CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' +
CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'
FROM sysfiles
WHERE name = @LogicalFileName
CREATE TABLE DummyTrans
(DummyColumn char (8000) not null)
DECLARE @Counter INT,
@StartTime DATETIME,
@TruncLog VARCHAR(255)
SELECT @StartTime = GETDATE(),
@TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'
DBCC SHRINKFILE (@LogicalFileName, @NewSize)
EXEC (@TruncLog)
-- Wrap the log if necessary.
WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired
AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName)
AND (@OriginalSize * 8 /1024) > @NewSize
BEGIN -- Outer loop.
SELECT @Counter = 0
WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))
BEGIN -- update
INSERT DummyTrans VALUES ('Fill Log')
DELETE DummyTrans
SELECT @Counter = @Counter + 1
END
EXEC (@TruncLog)
END
SELECT 'Final Size of ' + db_name() + ' LOG is ' +
CONVERT(VARCHAR(30),size) + ' 8K pages or ' +
CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'
FROM sysfiles
WHERE name = @LogicalFileName
DROP TABLE DummyTrans
SET NOCOUNT OFF
本文引用 : 藍色小惡魔 http://www.imp.idv.tw/play/forum/viewthread?thread=990
要判斷執行中的程式,最方便的方式是用System.Diagnostics.Process
ex:
using System.Diagnostics;
Process[] process = Process.GetProcessesByName("EXCEL");
if(process.Length > 0){
Log("Have been working in Background! Please try again later.");
}
但是VS2003用 Process ,在某些系統上會出現奇怪的 Couldn't get process information from remote machine 錯誤,微軟說是BUG,請改用VS2005(媽的),如果你也不幸遇到了,可以改用WMI。
ex:
using System.Management;
ManagementObjectSearcher mo = new ManagementObjectSearcher("SELECT * FROM Win32_Process Where NAME='EXCEL'");
if(mo.Get().Count > 0){
Log("It is calculating.... Please try it later.");
}
WMI也可以列舉所有執行中的程式,以下為範例.
ex:
using System.Management;
ManagementObjectSearcher mo = new ManagementObjectSearcher("SELECT * FROM Win32_Process'");
foreach (ManagementObject obj in mo.Get())
strProgram = obj["Description"].ToString();
跟之前的 CheckBoxList 例子很像,ASP.NET 的 RadioButtonList 在 HTML 也是由 Table + checkbox 組成,如果要用 JavaScript 判斷 User 選了那個 RadioBox,可以參考以下範例:
var selValue;
var table = document.getElementById("RadioButtonList1");
for(i=0;i<table.rows[0].cells.length;i++)
if(table.rows[0].cells[i].childNodes[0].checked == true)
selValue = table.rows[0].cells[i].childNodes[0].value;
要注意的是,這裡的RadioButtionList是用水平橫式的(Horizontal),如果用直式的(Vertical),table.rows[0].cells[i]要改為table.rows[i].cells[0]。