2013-04-17

判斷資料表中特定欄位是否存在


於MS SQL資料庫中可使用sys.sysobjects查詢資料表是否存在,
sys.columns則可查詢資料表中欄位資訊,
--檢查特定資料表是否存在
select OBJECT_ID('Prod')
--或
select * from sys.sysobjects where id=OBJECT_ID('Prod')
--檢查特定資料表中特定欄位是否存在
select * from sys.syscolumns where id=OBJECT_ID('Prod') and name='ProdNo'
如果是要查詢暫存表中的相關資訊,作法如下
--檢查特定暫存資料表是否存在
select OBJECT_ID('tempdb..#Prod')
--或
select * from tempdb..sysobjects where id=OBJECT_ID('tempdb..#Prod')
--檢查特定暫存資料表中特定欄位是否存在
select * from tempdb..syscolumns where id=OBJECT_ID('tempdb..#Prod') and name='ProdNo'

2013-04-07

變更tempdb存放位置

MS SQL Server無法透過Miscorsoft SQL Server Management Studio
修改伺服器中的tempdb的存放位置,
可以透過下述語法達到變更需求

--查詢tempdb存放位置
USE master
SELECT name,physical_name
FROM sys.master_files
WHERE database_id=DB_ID('tempdb')

--修改tempdb存放位置
USE master;
ALTER DATABASE tempdb
MODIFY FILE (NAME=tempdev,FILENAME='X:\tempdb.mdf');
ALTER DATABASE tempdb
MODIFY FILE (NAME=templog,FILENAME='X:\templog.ldf');