<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Luben Park

    Java Ben 成長(zhǎng)之路

    2006年4月6日 #

    表名作為參數(shù)傳遞的存儲(chǔ)過程寫法

    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_NULLS ON
    GO

    ?

    --=================================================================
    -- 描述:~~~~~~~~~~~~~~~~~~~~~~~~~~~
    -- 作者:魯湘
    -- @tableName?? 該模板對(duì)應(yīng)的數(shù)據(jù)庫表
    -- @RecordID??? 業(yè)務(wù)處理需要尋找表中記錄的ID號(hào)碼
    --=================================================================

    ALTER??? PROCEDURE WF_QingJia
    ? ?(@tableName varchar(50),@recordID varchar(50))
    AS
    -- 獲取表中的業(yè)務(wù)數(shù)據(jù)值
    DECLARE @money varchar(100),? -- 業(yè)務(wù)邏輯需要的值
    ?@sqls nvarchar(4000)? -- 保存組合SQL語句

    SET @sqls='SELECT @a=Money FROM '+@tableName +' WHERE ID ='+@recordID

    EXECUTE sp_executesql @sqls,N'@a varchar(50) output',@money output

    -- 根據(jù)值進(jìn)行相應(yīng)的業(yè)務(wù)處理
    print @money
    UPDATE WF_FormBill SET [Money]='真的被處理了' WHERE [ID]=@recordID

    ?

    GO
    SET QUOTED_IDENTIFIER OFF
    GO
    SET ANSI_NULLS ON
    GO

    posted @ 2006-11-16 16:49 Ben 閱讀(955) | 評(píng)論 (0)編輯 收藏

    [轉(zhuǎn)]經(jīng)典SQL語句--收藏 http://blog.ourtw.com/article.php?tid_600.html

    經(jīng)典SQL語句--收藏
    [個(gè)人收藏]經(jīng)典SQL語句.值得收藏
    精典的SQL語句,推薦收藏
    在網(wǎng)上經(jīng)常轉(zhuǎn),常常看到有些人為了求得某些SQL語句而焦頭爛額,現(xiàn)在我特別把自己收藏的一些比較精典的SQL拿出來和大家分享一下

    1. 行列轉(zhuǎn)換--普通

    假設(shè)有張學(xué)生成績(jī)表(CJ)如下
    Name ? Subject ? Result
    張三 ? 語文 ? ? 80
    張三 ? 數(shù)學(xué) ? ? 90
    張三 ? 物理 ? ? 85
    李四 ? 語文 ? ? 85
    李四 ? 數(shù)學(xué) ? ? 92
    李四 ? 物理 ? ? 82

    想變成 ?
    姓名 ? 語文 ? 數(shù)學(xué) ? 物理
    張三 ? 80 ? 90 ? 85
    李四 ? 85 ? 92 ? 82

    declare @sql varchar(4000)
    set @sql = ''select Name''
    select @sql = @sql + '',sum(case Subject when ''''''+Subject+'''''' then Result end) [''+Subject+'']''
    from (select distinct Subject from CJ) as a
    select @sql = @sql+'' from test group by name''
    exec(@sql)

    2. 行列轉(zhuǎn)換--合并

    有表A,
    id pid
    1 ? 1
    1 ? 2
    1 ? 3
    2 ? 1
    2 ? 2
    3 ? 1
    如何化成表B:
    id pid
    1 1,2,3
    2 1,2
    3 1

    創(chuàng)建一個(gè)合并的函數(shù)
    create function fmerg(@id int)
    returns varchar(8000)
    as
    begin
    declare @str varchar(8000)
    set @str=''''
    select @str=@str+'',''+cast(pid as varchar) from 表A where id=@id set @str=right(@str,len(@str)-1)
    return(@str)
    End
    go

    --調(diào)用自定義函數(shù)得到結(jié)果
    select distinct id,dbo.fmerg(id) from 表A

    3. 如何取得一個(gè)數(shù)據(jù)表的所有列名

    方法如下:先從SYSTEMOBJECT系統(tǒng)表中取得數(shù)據(jù)表的SYSTEMID,然后再SYSCOLUMN表中取得該數(shù)據(jù)表的所有列名。
    SQL語句如下:
    declare @objid int,@objname char(40)
    set @objname = ''tablename''
    select @objid = id from sysobjects where id = object_id(@objname)
    select ''Column_name'' = name from syscolumns where id = @objid order by colid

    是不是太簡(jiǎn)單了? 呵呵 不過經(jīng)常用阿.

    4. 通過SQL語句來更改用戶的密碼

    修改別人的,需要sysadmin role ?
    EXEC sp_password NULL, ''newpassword'', ''User''

    如果帳號(hào)為SA執(zhí)行EXEC sp_password NULL, ''newpassword'', sa

    5. 怎么判斷出一個(gè)表的哪些字段不允許為空?

    select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where IS_NULLABLE=''NO'' and TABLE_NAME=tablename

    6. 如何在數(shù)據(jù)庫里找到含有相同字段的表?
    a. 查已知列名的情況
    SELECT b.name as TableName,a.name as columnname
    From syscolumns ? a INNER JOIN ? sysobjects b ?
    ON a.id=b.id ?
    AND b.type=''U'' ?
    AND a.name=''你的字段名字''

    b. 未知列名查所有在不同表出現(xiàn)過的列名
    Select o.name As tablename,s1.name As columnname
    From syscolumns s1, sysobjects o
    Where s1.id = o.id
    ? And o.type = ''U''
    ? And Exists (
    ? ? Select 1 From syscolumns s2 ?
    ? ? Where s1.name = s2.name ?
    ? ? And s1.id <> s2.id
    ? ? )

    7. 查詢第xxx行數(shù)據(jù)

    假設(shè)id是主鍵:
    select *
    from (select top xxx * from yourtable) aa
    where not exists(select 1 from (select top xxx-1 * from yourtable) bb where aa.id=bb.id)

    如果使用游標(biāo)也是可以的
    fetch absolute [number] from [cursor_name]
    行數(shù)為絕對(duì)行數(shù)

    8. SQL Server日期計(jì)算
    a. 一個(gè)月的第一天
    SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
    b. 本周的星期一
    SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
    c. 一年的第一天
    SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
    d. 季度的第一天
    SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
    e. 上個(gè)月的最后一天
    SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
    f. 去年的最后一天
    SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
    g. 本月的最后一天
    SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
    h. 本月的第一個(gè)星期一
    select DATEADD(wk, DATEDIFF(wk,0, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
    ? ? ? ? ? ? ? ? ? ? dateadd(dd,6-datepart(day,getdate()),getdate()) ? ?
    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ), 0) ? ?
    i. 本年的最后一天
    SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))。
    -----------------------------------------------------------------------
    1.按姓氏筆畫排序:
    Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as

    2.數(shù)據(jù)庫加密:
    select encrypt(''原始密碼'')
    select pwdencrypt(''原始密碼'')
    select pwdcompare(''原始密碼'',''加密后密碼'') = 1--相同;否則不相同 encrypt(''原始密碼'')
    select pwdencrypt(''原始密碼'')
    select pwdcompare(''原始密碼'',''加密后密碼'') = 1--相同;否則不相同

    3.取回表中字段:
    declare @list varchar(1000),@sql nvarchar(1000)
    select @list=@list+'',''+b.name from sysobjects a,syscolumns b where a.id=b.id and a.name=''表A''
    set @sql=''select ''+right(@list,len(@list)-1)+'' from 表A''
    exec (@sql)

    4.查看硬盤分區(qū):
    EXEC master..xp_fixeddrives

    5.比較A,B表是否相等:
    if (select checksum_agg(binary_checksum(*)) from A)
    ? =
    ? (select checksum_agg(binary_checksum(*)) from B)
    print ''相等''
    else
    print ''不相等''

    6.殺掉所有的事件探察器進(jìn)程:
    DECLARE hcforeach CURSOR GLOBAL FOR SELECT ''kill ''+RTRIM(spid) FROM master.dbo.sysprocesses
    WHERE program_name IN(''SQL profiler'',N''SQL 事件探查器'')
    EXEC sp_msforeach_worker ''?''

    7.記錄搜索:
    開頭到N條記錄
    Select Top N * From 表
    -------------------------------
    N到M條記錄(要有主索引ID)
    Select Top M-N * From 表 Where ID in (Select Top M ID From 表) Order by ID Desc
    ----------------------------------
    N到結(jié)尾記錄
    Select Top N * From 表 Order by ID Desc

    8.如何修改數(shù)據(jù)庫的名稱:
    sp_renamedb ''old_name'', ''new_name''

    9:獲取當(dāng)前數(shù)據(jù)庫中的所有用戶表
    select Name from sysobjects where xtype=''u'' and status>=0

    10:獲取某一個(gè)表的所有字段
    select name from syscolumns where id=object_id(''表名'')

    11:查看與某一個(gè)表相關(guān)的視圖、存儲(chǔ)過程、函數(shù)
    select a.* from sysobjects a, syscomments b where a.id = b.id and b.text like ''%表名%''

    12:查看當(dāng)前數(shù)據(jù)庫中所有存儲(chǔ)過程
    select name as 存儲(chǔ)過程名稱 from sysobjects where xtype=''P''

    13:查詢用戶創(chuàng)建的所有數(shù)據(jù)庫
    select * from master..sysdatabases D where sid not in(select sid from master..syslogins where name=''sa'')
    或者
    select dbid, name AS DB_NAME from master..sysdatabases where sid <> 0x01

    14:查詢某一個(gè)表的字段和數(shù)據(jù)類型
    select column_name,data_type from information_schema.columns
    where table_name = ''表名''

    [n].[標(biāo)題]:
    Select * From TableName Order By CustomerName

    [n].[標(biāo)題]:
    Select * From TableName Order By CustomerName

    posted @ 2006-04-06 15:01 Ben 閱讀(878) | 評(píng)論 (0)編輯 收藏

    vs2003 和vs2005下的發(fā)送SMTP郵件 (downmoon原創(chuàng)) 選擇自 downmoon 的 Blog

    vs2003 和vs2005下的發(fā)送SMTP郵件 (downmoon原創(chuàng))
    一、vs2003
    引用 System.Web.Mail命名空間

    ?private void SenMail2003()
    ??? {
    ??????? MailMessage mailObj = new MailMessage();
    ??????? mailObj.To = this.txtTo.Text;
    ??????? mailObj.From = this.txtFrom.Text;
    ???????
    ??????? mailObj.Subject = "精采笑話";
    ??????? mailObj.Body = "豬!你已中毒! 哈哈 ";
    ???????
    ??????? mailObj.BodyFormat = MailFormat.Html;
    ??????? mailObj.BodyEncoding = MailFormat.Base64;
    ??????? mailObj.Priority = MailPriority.High;
    ??????? mailObj.Attachments.Add(new MailAttachment("c:\\swf\\000.bmp"));
    ??????? SmtpMail.Send(mailObj);
    ??????? Response.Write("發(fā)送郵件成功!");
    ??? }

    二、vs2005
    引用 System.Net.Mail命名空間,安全性得到了增強(qiáng)

    ?public static void SendWebMailAndAttach(string server)
    ??? {
    ???????? string file = "e:\\inetpub\\wwwroot\\Test2005All\\TestXML\\testXML.xml";
    ???????? System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage("Test@126.com", "Test@126.com", "text message for you.", "Test Title");
    ???????? System.Net.Mail.Attachment data = new System.Net.Mail.Attachment(file, System.Net.Mime.MediaTypeNames.Application.Octet);
    ???????? System.Net.Mime.ContentDisposition disposition = data.ContentDisposition;
    ???????? disposition.CreationDate = System.IO.File.GetCreationTime(file);
    ???????? disposition.ModificationDate = System.IO.File.GetLastWriteTime(file);
    ???????? disposition.ReadDate = System.IO.File.GetLastAccessTime(file);
    ???????? message.Attachments.Add(data);
    ??????? System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(server);
    ??????? client.Credentials = new NetworkCredential("用戶名", "密碼");
    ??????? client.Send(message);
    ??????? data.Dispose();
    ??? }
    引用示例
    SendWebMailAndAttach("smtp.126.com");

    posted @ 2006-04-06 14:18 Ben 閱讀(465) | 評(píng)論 (0)編輯 收藏

    SQL中CONVERT轉(zhuǎn)化函數(shù), Concat , COALESCE的用法

    SQL中CONVERT轉(zhuǎn)化函數(shù)的用法

    CONVERT的使用方法:

    ////////////////////////////////////////////////////////////////////////////////////////

    格式:
    CONVERT(data_type,expression[,style])

    說明:
    此樣式一般在時(shí)間類型(datetime,smalldatetime)與字符串類型(nchar,nvarchar,char,varchar)
    相互轉(zhuǎn)換的時(shí)候才用到.

    例子:
    SELECT CONVERT(varchar(30),getdate(),101) now
    結(jié)果為
    now
    ---------------------------------------
    09/15/2001

    /////////////////////////////////////////////////////////////////////////////////////

    style數(shù)字在轉(zhuǎn)換時(shí)間時(shí)的含義如下

    -------------------------------------------------------------------------------------------------
    Style(2位表示年份) | Style(4位表示年份) | 輸入輸出格式
    -------------------------------------------------------------------------------------------------
    - | 0 or 100 | mon dd yyyy hh:miAM(或PM)
    -------------------------------------------------------------------------------------------------
    1 | 101 | mm/dd/yy
    -------------------------------------------------------------------------------------------------
    2 | 102 | yy-mm-dd
    -------------------------------------------------------------------------------------------------
    3 | 103 | dd/mm/yy
    -------------------------------------------------------------------------------------------------
    4 | 104 | dd-mm-yy
    -------------------------------------------------------------------------------------------------
    5 | 105 | dd-mm-yy
    -------------------------------------------------------------------------------------------------
    6 | 106 | dd mon yy
    -------------------------------------------------------------------------------------------------
    7 | 107 | mon dd,yy
    -------------------------------------------------------------------------------------------------
    8 | 108 | hh:mm:ss
    -------------------------------------------------------------------------------------------------
    - | 9 or 109 | mon dd yyyy hh:mi:ss:mmmmAM(或PM)
    -------------------------------------------------------------------------------------------------
    10 | 110 | mm-dd-yy
    -------------------------------------------------------------------------------------------------
    11 | 111 | yy/mm/dd
    -------------------------------------------------------------------------------------------------
    12 | 112 | yymmdd
    -------------------------------------------------------------------------------------------------
    - | 13 or 113 | dd mon yyyy hh:mi:ss:mmm(24小時(shí)制)
    -------------------------------------------------------------------------------------------------
    14 | 114 | hh:mi:ss:mmm(24小時(shí)制)
    -------------------------------------------------------------------------------------------------
    - | 20 or 120 | yyyy-mm-dd hh:mi:ss(24小時(shí)制)
    -------------------------------------------------------------------------------------------------
    - | 21 or 121 | yyyy-mm-dd hh:mi:ss:mmm(24小時(shí)制)
    -------------------------------------------------------------------------------------------------

    concat
    方法的結(jié)果等于:result = string1 + string2 + string3 + … + stringN

    COALESCE 返回其參數(shù)中第一個(gè)非空表達(dá)式

    posted @ 2006-04-06 14:15 Ben 閱讀(1969) | 評(píng)論 (0)編輯 收藏

    主站蜘蛛池模板: 人人狠狠综合久久亚洲88| 又黄又大又爽免费视频| 图图资源网亚洲综合网站| 国产又黄又爽胸又大免费视频| 亚洲精品无码99在线观看| 又硬又粗又长又爽免费看 | 97视频免费在线| 亚洲人成影院77777| 最近最新MV在线观看免费高清 | 亚洲日韩亚洲另类激情文学| 大陆一级毛片免费视频观看i| 亚洲日韩精品A∨片无码加勒比| 日本19禁啪啪无遮挡免费动图| 国产亚洲精品美女久久久久 | 免费无码AV一区二区| 亚洲真人日本在线| 你懂的免费在线观看| 亚洲AV美女一区二区三区| 永久免费AV无码国产网站| 欧美日韩亚洲精品| 怡红院亚洲怡红院首页| 精品一区二区三区无码免费视频| 激情内射亚洲一区二区三区爱妻| 免费黄色小视频网站| 成人免费视频一区二区| 亚洲成a人片77777老司机| 99在线精品免费视频九九视| 亚洲欧美日韩综合俺去了| 国产精品V亚洲精品V日韩精品| 免费观看男人吊女人视频| 国产精品亚洲精品| 亚洲国产精品日韩专区AV| 亚洲精品免费观看| 亚洲熟女www一区二区三区| 亚洲伊人久久综合影院| 2021国产精品成人免费视频| 国产亚洲精品91| 亚洲AV天天做在线观看| 成人永久免费福利视频网站| 国产在线观看免费av站| 色老板亚洲视频免在线观|