??xml version="1.0" encoding="utf-8" standalone="yes"?>国产在线观看免费网站,国产精品久久久久久久久久小说 ,午夜成人免费视频http://www.aygfsteel.com/Ben/archive/2006/11/16/81560.htmlBenBenThu, 16 Nov 2006 08:49:00 GMThttp://www.aygfsteel.com/Ben/archive/2006/11/16/81560.htmlhttp://www.aygfsteel.com/Ben/comments/81560.htmlhttp://www.aygfsteel.com/Ben/archive/2006/11/16/81560.html#Feedback0http://www.aygfsteel.com/Ben/comments/commentRss/81560.htmlhttp://www.aygfsteel.com/Ben/services/trackbacks/81560.htmlSET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

 (tng)

--=================================================================
-- 描述Q~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- 作者:(x)鲁湘
-- @tableName (tng) (tng) 该模板对应的数据库表
-- @RecordID (tng) (tng) (tng) 业务处理需要寻找表中记录的IDL(fng)
--=================================================================

ALTER (tng) (tng) (tng) PROCEDURE WF_QingJia
 (tng)  (tng)(@tableName varchar(50),@recordID varchar(50))
AS
-- 获取表中的业务数据?br />DECLARE @money varchar(100), (tng) -- 业务逻辑需要的?br /> (tng)@sqls nvarchar(4000) (tng) -- 保存l合SQL语句

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

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

-- Ҏ(gu)D行相应的业务处理
print @money
UPDATE WF_FormBill SET [Money]='真的被处理了(jin)' WHERE [ID]=@recordID

 (tng)

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO



Ben 2006-11-16 16:49 发表评论
]]>
[转]l典SQL语句--收藏 http://blog.ourtw.com/article.php?tid_600.htmlhttp://www.aygfsteel.com/Ben/archive/2006/04/06/39588.htmlBenBenThu, 06 Apr 2006 07:01:00 GMThttp://www.aygfsteel.com/Ben/archive/2006/04/06/39588.htmlhttp://www.aygfsteel.com/Ben/comments/39588.htmlhttp://www.aygfsteel.com/Ben/archive/2006/04/06/39588.html#Feedback0http://www.aygfsteel.com/Ben/comments/commentRss/39588.htmlhttp://www.aygfsteel.com/Ben/services/trackbacks/39588.html[个h收藏]l典SQL语句.值得收藏
_օ的SQL语句Q推荐收?br />在网上经常{,常常看到有些Zؓ(f)?jin)求得某些SQL语句而焦头烂?现在我特别把自己收藏的一些比较精典的SQL拿出来和大家分n一?br />
1. 行列转换--普?br />
假设有张学生成W?CJ)如下
Name  (tng) Subject  (tng) Result
张三  (tng) 语文  (tng)  (tng) 80
张三  (tng) 数学  (tng)  (tng) 90
张三  (tng) 物理  (tng)  (tng) 85
李四  (tng) 语文  (tng)  (tng) 85
李四  (tng) 数学  (tng)  (tng) 92
李四  (tng) 物理  (tng)  (tng) 82

惛_? (tng)
姓名  (tng) 语文  (tng) 数学  (tng) 物理
张三  (tng) 80  (tng) 90  (tng) 85
李四  (tng) 85  (tng) 92  (tng) 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. 行列转换--合ƈ

有表A,
id pid
1  (tng) 1
1  (tng) 2
1  (tng) 3
2  (tng) 1
2  (tng) 2
3  (tng) 1
如何化成表B:
id pid
1 1,2,3
2 1,2
3 1

创徏一个合q的函数
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

--调用自定义函数得到结?br />select distinct id,dbo.fmerg(id) from 表A

3. 如何取得一个数据表的所有列?br />
Ҏ(gu)如下Q先从SYSTEMOBJECTpȝ表中取得数据表的SYSTEMID,然后再SYSCOLUMN表中取得该数据表的所有列名?br />SQL语句如下Q?br />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

是不是太单了(jin)Q?呵呵 不过l常用阿.

4. 通过SQL语句来更改用L(fng)密码

修改别h?需要sysadmin role  (tng)
EXEC sp_password NULL, ''newpassword'', ''User''

如果帐号为SA执行EXEC sp_password NULL, ''newpassword'', sa

5. 怎么判断Z个表的哪些字D不允许为空Q?br />
select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where IS_NULLABLE=''NO'' and TABLE_NAME=tablename

6. 如何在数据库里找到含有相同字D늚表?
a. 查已知列名的情况
SELECT b.name as TableName,a.name as columnname
From syscolumns  (tng) a INNER JOIN  (tng) sysobjects b  (tng)
ON a.id=b.id  (tng)
AND b.type=''U''  (tng)
AND a.name=''你的字段名字''

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

7. 查询Wxxx行数?br />
假设id是主键:(x)
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)

如果使用游标也是可以?
fetch absolute [number] from [cursor_name]
行数为绝对行?br />
8. SQL Server日期计算
a. 一个月的第一?br />SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
b. 本周的星期一
SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
c. 一q的W一?br />SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
d. 季度的第一?br />SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
e. 上个月的最后一?
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
f. d的最后一?br />SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
g. 本月的最后一?br />SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
h. 本月的第一个星期一
select DATEADD(wk, DATEDIFF(wk,0,  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)
 (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng) dateadd(dd,6-datepart(day,getdate()),getdate())  (tng)  (tng)
 (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng) ), 0)  (tng)  (tng)
i. 本年的最后一?br />SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))?br />-----------------------------------------------------------------------
1.按姓氏笔L?
Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as

2.数据库加?
select encrypt(''原始密码'')
select pwdencrypt(''原始密码'')
select pwdcompare(''原始密码'',''加密后密?') = 1--相同Q否则不相同 encrypt(''原始密码'')
select pwdencrypt(''原始密码'')
select pwdcompare(''原始密码'',''加密后密?') = 1--相同Q否则不相同

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.查看盘分区:
EXEC master..xp_fixeddrives

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

6.杀掉所有的事g探察器进E?
DECLARE hcforeach CURSOR GLOBAL FOR SELECT ''kill ''+RTRIM(spid) FROM master.dbo.sysprocesses
WHERE program_name IN(''SQL profiler'',N''SQL 事g探查?')
EXEC sp_msforeach_worker ''?''

7.记录搜烦(ch):
开头到N条记?br />Select Top N * From ?br />-------------------------------
N到M条记?要有ȝ(ch)引ID)
Select Top M-N * From ?Where ID in (Select Top M ID From ? Order by ID Desc
----------------------------------
N到结记?br />Select Top N * From ?Order by ID Desc

8.如何修改数据库的名称:
sp_renamedb ''old_name'', ''new_name''

9Q获取当前数据库中的所有用戯
select Name from sysobjects where xtype=''u'' and status>=0

10Q获取某一个表的所有字D?br />select name from syscolumns where id=object_id(''表名'')

11Q查看与某一个表相关的视图、存储过E、函?br />select a.* from sysobjects a, syscomments b where a.id = b.id and b.text like ''%表名%''

12Q查看当前数据库中所有存储过E?br />select name as 存储q程名称 from sysobjects where xtype=''P''

13Q查询用户创建的所有数据库
select * from master..sysdatabases D where sid not in(select sid from master..syslogins where name=''sa'')
或?br />select dbid, name AS DB_NAME from master..sysdatabases where sid <> 0x01

14Q查询某一个表的字D和数据cd
select column_name,data_type from information_schema.columns
where table_name = ''表名''

[n].[标题]:
Select * From TableName Order By CustomerName

[n].[标题]:
Select * From TableName Order By CustomerName


Ben 2006-04-06 15:01 发表评论
]]>
SQL中CONVERT转化函数, Concat , COALESCE的用?/title><link>http://www.aygfsteel.com/Ben/archive/2006/04/06/39578.html</link><dc:creator>Ben</dc:creator><author>Ben</author><pubDate>Thu, 06 Apr 2006 06:15:00 GMT</pubDate><guid>http://www.aygfsteel.com/Ben/archive/2006/04/06/39578.html</guid><wfw:comment>http://www.aygfsteel.com/Ben/comments/39578.html</wfw:comment><comments>http://www.aygfsteel.com/Ben/archive/2006/04/06/39578.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Ben/comments/commentRss/39578.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Ben/services/trackbacks/39578.html</trackback:ping><description><![CDATA[ <p>SQL中CONVERT转化函数的用?/p> <p>CONVERT的用方?</p> <p>////////////////////////////////////////////////////////////////////////////////////////</p> <p>格式:<br />CONVERT(data_type,expression[,style])</p> <p>说明:<br />此样式一般在旉cd(datetime,smalldatetime)与字W串cd(nchar,nvarchar,char,varchar)<br />怺转换的时候才用到.</p> <p>例子:<br />SELECT CONVERT(varchar(30),getdate(),101) now<br />l果?br />now<br />---------------------------------------<br />09/15/2001</p> <p>/////////////////////////////////////////////////////////////////////////////////////</p> <p>style数字在{换时间时的含义如?/p> <p>-------------------------------------------------------------------------------------------------<br />Style(2位表C年? | Style(4位表C年? | 输入输出格式 <br />-------------------------------------------------------------------------------------------------<br />- | 0 or 100 | mon dd yyyy hh:miAM(或PM) <br />-------------------------------------------------------------------------------------------------<br />1 | 101 | mm/dd/yy <br />-------------------------------------------------------------------------------------------------<br />2 | 102 | yy-mm-dd <br />-------------------------------------------------------------------------------------------------<br />3 | 103 | dd/mm/yy <br />-------------------------------------------------------------------------------------------------<br />4 | 104 | dd-mm-yy <br />-------------------------------------------------------------------------------------------------<br />5 | 105 | dd-mm-yy <br />-------------------------------------------------------------------------------------------------<br />6 | 106 | dd mon yy <br />-------------------------------------------------------------------------------------------------<br />7 | 107 | mon dd,yy <br />-------------------------------------------------------------------------------------------------<br />8 | 108 | hh:mm:ss <br />-------------------------------------------------------------------------------------------------<br />- | 9 or 109 | mon dd yyyy hh:mi:ss:mmmmAM(或PM)<br />-------------------------------------------------------------------------------------------------<br />10 | 110 | mm-dd-yy <br />-------------------------------------------------------------------------------------------------<br />11 | 111 | yy/mm/dd <br />-------------------------------------------------------------------------------------------------<br />12 | 112 | yymmdd <br />-------------------------------------------------------------------------------------------------<br />- | 13 or 113 | dd mon yyyy hh:mi:ss:mmm(24时? <br />-------------------------------------------------------------------------------------------------<br />14 | 114 | hh:mi:ss:mmm(24时? <br />-------------------------------------------------------------------------------------------------<br />- | 20 or 120 | yyyy-mm-dd hh:mi:ss(24时? <br />-------------------------------------------------------------------------------------------------<br />- | 21 or 121 | yyyy-mm-dd hh:mi:ss:mmm(24时? <br />-------------------------------------------------------------------------------------------------<br /><span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #c60a00; FONT-FAMILY: Arial"><br /><font size="4">concat</font></span><font size="4"><span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"></span><span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">Ҏ(gu)的结果等?/span></font><span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><font size="4">:result = string1 + string2 + string3 + ?+ stringN</font></span></p> <p class="MsoCommentText" style="MARGIN: 0cm 0cm 0pt"> <font size="4"> <span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #c60a00; FONT-FAMILY: Arial">COALESCE</span> <span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"> </span> <span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">q回其参CW一个非I辑ּ<br /><br /></span> </font> </p> <img src ="http://www.aygfsteel.com/Ben/aggbug/39578.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Ben/" target="_blank">Ben</a> 2006-04-06 14:15 <a href="http://www.aygfsteel.com/Ben/archive/2006/04/06/39578.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转帖]SQL Server - [分布式查?事务]http://www.aygfsteel.com/Ben/archive/2006/03/29/38085.htmlBenBenWed, 29 Mar 2006 08:35:00 GMThttp://www.aygfsteel.com/Ben/archive/2006/03/29/38085.htmlhttp://www.aygfsteel.com/Ben/comments/38085.htmlhttp://www.aygfsteel.com/Ben/archive/2006/03/29/38085.html#Feedback0http://www.aygfsteel.com/Ben/comments/commentRss/38085.htmlhttp://www.aygfsteel.com/Ben/services/trackbacks/38085.html 分布式查?/font>
 (tng) (tng) (tng) OPENROWSET
 (tng) (tng) (tng) 从Excel取数?/font>
 (tng) (tng) (tng) SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=d:\1.xls',[Sheet1$])
 (tng) (tng) (tng) 从Oracle取数?/font>
 (tng) (tng) (tng) SELECT (tng)* FROM OPENROWSET('MSDAORA.1','NetServiceName';'User';'Password','SELECT * FROM OracleTalbe')
 (tng)
 (tng) (tng) (tng) Linked Server(for Oracle)
 (tng) (tng) (tng) 建立Linked Server
 (tng) (tng) (tng) sp_addlinkedserver'Allies', 'Oracle', 'MSDAORA.1', 'NetServiceName'
 (tng) (tng) (tng) Oracle的Login
 (tng) (tng) (tng) sp_addlinkedsrvlogin'Allies', FALSE, 'SQLServerLogin', 'OracleUser', 'OraclePassword'
 (tng) (tng) (tng) 从Oracle查询数据
 (tng) (tng) (tng) SELECT*FROM OPENQUERY( Allies, 'SELECT * FROM OracleTalbe')Q或?/font>
 (tng) (tng) (tng) SELECT*FROM Allies..OracleUser.OracleTalbe
 (tng) (tng) (tng) 修改Linked Server的Server Option
 (tng)  (tng) (tng) sp_serveroption'Allies', 'Option Name', 'Option Value'
 (tng) (tng) (tng) 例如
 (tng) (tng) (tng) sp_serveroption'OraDC', 'rpc out', 'true'
 (tng) (tng) (tng) sp_serveroption'OraDC', 'rpc', 'true'
 (tng) (tng) (tng) 向Oracle插入数据Q还没有用过Q?/font>
 (tng) (tng) (tng) INSERT INTO OPENQUERY(Allies, 'SELECT ... FROM OracleTalbe WHERE 1=2') VALUES ( ... )
 (tng) (tng) (tng) 删除Linked Server
 (tng) (tng) (tng) sp_dropserver'Allies', 'droplogins'
 (tng)
 (tng) (tng) (tng) 注意Q用OPENROWSET、OPENQUERYӞSQL Server不对提交的SQL语句做Q何检查,直接语句提交给Linked Serverq行处理Q用四部分命名法时QSQL Server可能从Linked Server上读取被引用表的数据到SQL ServerQ然后在SQL Server上来完成其它操作?/font>
 (tng)
 (tng) (tng) (tng) 讄SQL Server到Oracle的Linked ServerQ可参考以下KB文章Q?/font>
 (tng)
 (tng) (tng) (tng) 分布式事务中的OPENROWSET、OPENQUERY、OPENDATASOURCE
 (tng) (tng) (tng) 如果在事务,或是一些隐含用事务的情况下,例如TRIGGER中,使用OPENROWSET、OPENQUERY、OPENDATASOURCEӞ需要用分布式事务来处理?/font>
 (tng) (tng) (tng) 在分布式事务中用OPENROWSET、OPENQUERY、OPENDATASOURCE或Linked ServerӞ需要注意:(x)
 (tng) (tng) (tng) 1. 必须启动MSDTC服务?/font>
 (tng) (tng) (tng) (tng)Service Name为Distributed Transaction Coodinator?/font>
 (tng) (tng) (tng) 2. 所涉及(qing)的Server之间如果存在|关、防火墙Q需要开启TCP 135端口?/font>
 (tng) (tng) (tng) 分布式事务需要用这个端口通讯?/font>
 (tng) (tng) (tng) 3. 如果Server之间跨网D,则Server之间需要能互相PING到机器名Q而不是IP地址Q?/font>
 (tng) (tng) (tng) 如果怺PING机器名有问题Q修?font color="#990099">system32/driver/etc目录下的hosts文g?/font>
 (tng)
 (tng) (tng) (tng) 上面的设|不正确Ӟ?x)出现类似如下的错误Q?/font>
 (tng) (tng) (tng) 该操作未能执行,因ؓ(f) OLE DB 提供E序 'SQLOLEDB' 无法启动分布式事务?br />[OLE/DB provider returned message: C务不能登记到指定的事务处理器中?]
OLE DB 错误跟踪QOLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00aQ?/font>  (tng)
 (tng)
 (tng) (tng) (tng) 分布式事务可以查询下列KB文章Q?/font>
 (tng)
 (tng) (tng) (tng) 使用分布式查询,可以参考:(x)Chapter 25 - Distributed Queries: OLE DB Connectivity?/font>
 (tng) (tng) (tng) 关于ORAOLEDB提供E序的详l说明,可以参考:(x)Oracle Provider for OLE DB Developer's Guide - Release 9.2 ?/font>


Ben 2006-03-29 16:35 发表评论
]]>
վ֩ģ壺 | | | | | | | Դ| | | | | | | | γ| | н| | | | ͬ| | ɽ| | Ӧ| | е| | | ͩ| ̨| ½| | | Ͱ| | ƽ| | ʷ| |