但SQLite預設將大小寫視為不同結果,
但可以利用在來欄位名稱後加上COLLATE NOCASE以便忽略大小寫差異...
select * from TableName where AccNo='Dean' COLLATE NOCASE
參考自
sqlite查询忽略大小写,你踩坑了吗?
select * from TableName where AccNo='Dean' COLLATE NOCASE
--附加資料庫 ATTACH DATABASE 'C:/123.db' As 'Tmp_db'; --表格寫入附加資料庫 insert into Tmp_db.Company select * from Company --查詢附加資料庫表格 select * from Tmp_db.Company --解除附加資料庫 DETACH DATABASE 'Tmp_db';
select CorpNo as FieldNa from Company select FieldNa=CorpNo from Company
select *
from (select CorpNo
from Company) T (FieldNa)
--月份第一天 select N'月份第一天'=DATEADD(MM,DATEDIFF(MM,0,GETDATE()),0) --月份最後一天 select N'月份最後一天'=DATEADD(DD,-1,DATEADD(MM,DATEDIFF(MM,0,GETDATE())+1,0)) --RESULT 月份第一天 ----------------------- 2015-01-01 00:00:00.000 月份最後一天 ----------------------- 2015-01-31 00:00:00.000
SELECT TOP (100) PERCENT * FROM TABLENAME ORDER BY FIELDNAME
--查詢包含特定字串之Proc、Function
DECLARE @TmpStr NVARCHAR(MAX)='Factory=@CorpNo'
SELECT ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE, ROUTINE_DEFINITION
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_DEFINITION LIKE '%'+@TmpStr+'%'
AND ROUTINE_TYPE ROUTINE_TYPE IN ('PROCEDURE','FUNCTION')
--查詢包含特定字串之View
SELECT TABLE_NAME,VIEW_DEFINITION
FROM INFORMATION_SCHEMA.VIEWS
WHERE VIEW_DEFINITION LIKE '%'+@TmpStr+'%'
--修改前將資料庫設定為單一使用者模式(SINGLE_USER) ALTER DATABASE DBName SET SINGLE_USER WITH ROLLBACK IMMEDIATE --修改資料庫定序 ALTER DATABASE DBName COLLATE Chinese_PRC_Stroke_CI_AS --修改後將資料庫改回允許有權限之帳號存取模式(MULTI_USER) ALTER DATABASE DBName SET MULTI_USER
select '前面空白'=CONVERT(VARCHAR,LEN(' 123ab')),
'中間空白'=CONVERT(VARCHAR,LEN('12 3ab')),
'後面空白'=CONVERT(VARCHAR,LEN('123ab '))
/*----------------------------------結果----------------------------------*/
前面空白 中間空白 後面空白
------------------------------ ------------------------------ ------------------------------
6 6 5
select '前面空白'=CONVERT(VARCHAR,DATALENGTH(' 123ab')),
'中間空白'=CONVERT(VARCHAR,DATALENGTH('12 3ab')),
'後面空白'=CONVERT(VARCHAR,DATALENGTH('123ab '))
/*----------------------------------結果----------------------------------*/
前面空白 中間空白 後面空白
------------------------------ ------------------------------ ------------------------------
6 6 6
select 'VARCHAR'=CONVERT(VARCHAR,DATALENGTH(CONVERT(VARCHAR,'2238# '))), 'NVARCHAR'=CONVERT(VARCHAR,DATALENGTH(CONVERT(NVARCHAR,'2238# '))), 'NCHAR'=CONVERT(VARCHAR,DATALENGTH(CONVERT(NCHAR,'2238# '))) /*----------------------------------結果----------------------------------*/ VARCHAR NVARCHAR NCHAR ------------------------------ ------------------------------ ------------------------------ 6 12 60
--建立測試表格/資料
IF (select OBJECT_ID('tempdb..#Mail_Tmp')) IS NOT NULL DROP TABLE #Mail_Tmp
CREATE TABLE #Mail_Tmp (AccNo VARCHAR(10),
EMail VARCHAR(MAX))
INSERT INTO #Mail_Tmp VALUES ('dean','dean@gmail.com')
INSERT INTO #Mail_Tmp VALUES ('phoebe','phoebe@gmail.com')
--抓取資料
IF EXISTS (select * from #Mail_Tmp)
BEGIN
DECLARE @tableHTML NVARCHAR(MAX) ;
SET @tableHTML =
N'<H1>用戶郵件帳號明細</H1>' +
N'<table border="1">' +
N'<th>使用者</th>'+
N'<th>email</th>'+
N'</tr>' +
CAST ( (select td=AccNo,'',
td=EMail,''
from #Mail_Tmp
FOR XML PATH('tr'), TYPE
) AS NVARCHAR(MAX) ) +
N'</table>'+
N'此郵件由系統發出'
EXEC msdb.dbo.sp_send_dbmail
@profile_name='ERP_DB',--Database Mail設定檔名稱
@recipients='dean@gmail.com',--收件者
@copy_recipients='',--CC
@subject='用戶郵件帳號明細',--主旨
@body=@tableHTML,
@body_format=HTML--使用HTML格式
END
--範例
--建立暫存表
IF UPPER(@ServerNa) = 'SERVAER_A'
BEGIN
IF (SELECT OBJECT_ID('tempdb..#STUL')) IS NOT NULL DROP TABLE #STUL
select DISTINCT CorpNo,IONo into #STUL
from [SERVAER_A].InnovaERP.dbo.SysTableUpdateLog
where PrgType=@PrgType
END
ELSE IF UPPER(@ServerNa) = 'SERVAER_B'
BEGIN
IF (SELECT OBJECT_ID('tempdb..#STUL')) IS NOT NULL DROP TABLE #STUL
select DISTINCT CorpNo,IONo into #STUL
from [SERVAER_B].InnovaERP.dbo.SysTableUpdateLog
where PrgType=@PrgType
END
--錯誤訊息 訊息 2714,層級 16,狀態 1,程序 SP_XXX,行 24 資料庫中已經有一個名為 '#STUL' 的物件。通常在不同的IF ELSE判斷子句中,應該可以視為獨立的事件,
--建立暫存表
IF (SELECT OBJECT_ID('tempdb..#STUL')) IS NOT NULL DROP TABLE #STUL
SELECT TOP 1 CorpNo,IONo
INTO #STUL
FROM SysTableUpdateLog
IF UPPER(@ServerNa) = 'SERVAER_A'
BEGIN
INSERT INTO #STUL
select DISTINCT CorpNo,IONo
from [SERVAER_A].InnovaERP.dbo.SysTableUpdateLog
where PrgType=@PrgType
END
ELSE IF UPPER(@ServerNa) = 'SERVAER_B'
BEGIN
INSERT INTO #STUL
select DISTINCT CorpNo,IONo
from [SERVAER_B].InnovaERP.dbo.SysTableUpdateLog
where PrgType=@PrgType
END
--列出目前連線的資訊 use master--use master系統資料庫 select c.session_id, c.connect_time,s.login_time, c.client_net_address, s.login_name,s.status from sys.dm_exec_connections c left join sys.dm_exec_sessions s on c.session_id = s.session_id
--檢查特定資料表是否存在
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'