易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 :

Sql Server查询数据集行列互换

行换列:
--> 生成测试数据表: [tb]
IF OBJECT_ID('[tb]') IS NOT NULL
    DROP TABLE [tb]
GO
CREATE TABLE [tb] ([a] [int],[b] [int],[c] [int])
INSERT INTO [tb]
SELECT '3','9','5' UNION ALL
SELECT '5','2','7' UNION ALL
SELECT '6','3','8'
--SELECT * from [tb]
-->SQL查询如下:
select value maxnum from tb unpivot(value for type in(a,b,c)) b
########################################
列换行:
待补充 ......

关于SQL SERVER时间格式使用的一些总结

---上个月月初第一天
select CONVERT(varchar(12) , DATEADD(mm,DATEDIFF(mm,0,dateadd(mm,-1,getdate())),0), 112 )
---上个月月末最后一天
select CONVERT(varchar(12),dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate()),0)), 112 )
1. 显示本月第一天
SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0)
select convert(datetime,convert(varchar(8),getdate(),
120)+'01',120)
 
2. 显示本月最后一天
select dateadd(day,-1,convert(datetime,convert
(varchar(8),dateadd(month,1,getdate()),120)+'01',120))
SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+1,0))
 
3. 上个月的最后一天
SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(mm,0,getdate()),0))
 
4. 本月的第一个星期一i
select DATEADD(wk,DATEDIFF(wk,0, dateadd(dd,6-datepart(
day,getdate()),getdate())),0)
 
5. 本年的第一天
SELECT DATEADD(yy,DATEDIFF(yy,0,getdate()),0)
 
6. 本年的最后一天
SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate())+1,0))
 
7. 去年的最后一天
SELECT dateadd(ms,-3,DATEADD(yy,DAT ......

sql常用

select [name] from sysdatabases order by name--得到数据库中所有的库名
select [name] from sysobjects where xtype='U'and [name]<>'dtproperties' order by [name]--得到数据库表中的列表
select [name] from sysobjects where xtype='V' and [name]<>'syssegments' and [name]<>'sysconstraints' order by [name]--视图
select [name] from sysobjects where xtype='P'and [name]<>'dtproperties' order by [name]--存储过程 ......

ms sql : xp_cmdshell

向高手请教一个问题:
当我执行:
  use master
exec  xp_cmdshell 'osql /S musqlserver /U sa /P mypwd /d haodb /Q "select top 10 * from trandetail"  /o C:\my1.xls'
以上执行成功,会产生新文件:C:\my1.xls'
然后我想将此文件直接copy到另一台电脑中[已建连接]
执行
  EXEC xp_cmdshell 'copy C:\my1.xls  \\192.168.42.42\d$'
  时候,系统会提示"拒绝访问"
  而在DOS窗口中执行:
  C:\my1.xls  \\192.168.42.42\d$ 则没有任何问题
我想应该是用户权限的问题
因为在sql中,用户是sa
在DOS中,用户则是administrator
那我应该怎么做??
先建立共享信用关系
master..xp_cmdshell 'net use \\192.168.42.42\d$ 123  /user:domain\administrator'
关于net use的用法看帮助。
exec xp_cmdshell 'net use Z: \\192.168.42.42\d$   /user:domain\administrator'
exec xp_cmdshell 'copy C:\my1.xls Z:\'
exec xp_cmdshell 'net use Z: /del'
......

SQL Server 2005 查询分析中删除数据库

USE   master  
GO
DECLARE   @dbname   sysname  
SET  @dbname='TEST' --这个是要删除的数据库库名  
DECLARE @s  NVARCHAR(1000)  
DECLARE tb CURSOR local FOR  
SELECT s='KILL '+CAST(spid AS NVARCHAR)  
from master..sysprocesses    
WHERE dbid=DB_ID(@dbname)  
OPEN tb
FETCH next from tb INTO @s  
WHILE @@FETCH_STATUS=0  
BEGIN  
 EXEC(@s)  
 FETCH next from tb INTO @s  
END
CLOSE tb
DEALLOCATE tb
  
EXEC('DROP DATABASE ['+@dbname+']')   ......

SQL 将列转换为行,相当于将表结构旋转90度

将列转换为行,相当于将表结构旋转90度
T_Student 表
Stud_ID
Sex
Name
1

Tom
2

Anne
3

Jack
 
执行: Exec proColumnToRow ’T_Student’,’Name’,’ New_ID’
 
转换后的表
 
New_ID
Tom
Anne
Jack
Stud_ID
1
2
3
Sex



 
--将列转换为行
create proc proColumnToRow
       @tbname sysname, --要处理的表名
       @fdname sysname, --某一列的值转换为新表的列
       @new_fdname sysname='' --将源表的列转换为新列的值。@new_fdname为新列的列名
as
declare @s1 varchar(8000) , @s2 varchar(8000),
        @s3 varchar(8000) , @s4 varchar(8000),
        @s5 varchar(8000) , @i varchar(10)
select
 @s1 = '' , @s2 = '' , @s3 = '' , @s4 = '' , @s5 = '' , @i = '0'
select
 @s1 = @s1 + ',@' + @i + ' varchar(8000)',
     &n ......
总记录数:40319; 总页数:6720; 每页6 条; 首页 上一页 [976] [977] [978] [979] 980 [981] [982] [983] [984] [985]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号