sql语句
作者 佚名技术
来源 数据库编程
浏览
发布时间 2012-03-22
使用时 (INTERSECT ALL),不消除重复行。 计算一个库里各个表的记录总数: select b.name,a.rowcntfrom sysindexes a,sysobjects bwhere a.id=b.idand a.indid<2 and b.xtype=''u'' --统计数据库里每个表的详细情况 EXEC sp_MSforeachtable@command1="sp_spaceused''?''"- -获得每个表的记录数和容量: EXEC sp_MSforeachtable@command1="print ''?''",@command2="sp_spaceused''?''",@command3= "SELECT count(*)FROM ? " 排序问题 CREATE TABLE [t] ( [id] [int] IDENTITY (1,1)NOT NULL , [GUID] [uniqueidentifier] NULL )ON [PRIMARY] GO 下面这句执行5次 insert tvalues (newid()) 查看执行结果 select * from t 1、 第一种 select * from torder by case id when 4 then 1 when 5 then 2 when 1 then 3 when 2 then 4 when 3 then 5 end 2、 第二种 select * from torder by (id+2)%6 3、 第三种 select * from torder by charindex(cast(idas varchar),''45123'') 4、 第四种 select * from tWHERE idbetween 0 and 5 order by charindex(cast(idas varchar),''45123'') 5、 第五种 select * from torder by case when id>3 then id-5 else idend 6、 第六种 select * from torder by id/ 4 desc,idasc 一条语句删除一批记录 首先id列是int标识类类型,然后删除ID值为5,6,8,9,10,11的列,这里的cast函数不能用convert函数代替,而且转换的类型必须是varchar,而不能是char,否则就会执行出你不希望的结果,这里的"5,6,8,9,10,11"可以是你在页面上获取的一个chkboxlist构建成的值,然后用下面的一句就全部删除了,比循环用多条语句高效吧应该。delete from [fujian] where charindex('',''+cast([id] as varchar)+'','','',''+''5,6,8,9,10,11,''+'','')>0 还有一种就是delete from table1where idin(1,2,3,4 ) ---动态SQL基本语法: 1 :普通SQL语句可以用exec执行 Select * from tableNameexec(''select * from tableName'')exec sp_executesql N''select * from tableName'' -- 请注意字符串前一定要加N 2:字段名,表名,数据库名之类作为变量时,必须用动态SQL declare @fname varchar(20) set @fname = ''FiledName'' Select @fname from tableName-- 错误,不会提示错误,但结果为固定值FiledName,并非所要。exec(''select'' + @fname + '' from tableName'')-- 请注意 加号前后的 单引号的边上加空格 当然将字符串改成变量的形式也可 declare @fname varchar(20) set @fname = ''FiledName'' --设置字段名 declare @s varchar(1000) set @s = ''select'' + @fname + '' from tableName'' exec(@s)-- 成功 exec sp_executesql@s -- 此句会报错 declare @s Nvarchar(1000)-- 注意此处改为nvarchar(1000) set @s = ''select'' + @fname + '' from tableName'' exec(@s)-- 成功 exec sp_executesql@s -- 此句正确 3. 输出参数 declare @num int,@sqls nvarchar(4000) set @sqls=''select count(*) from tableName'' exec(@sqls) --如何将exec执行结果放入变量中? declare @num int,@sqls nvarchar(4000) set @sqls=''select @a=count(*) from tableName'' exec sp_executesql@sqls,N''@a int output'', @num outputselect @num 1 :普通SQL语句可以用Exec执行 例: Select * from tableNameExec(''select * from tableName'')Exec sp_executesql N''select * from tableName'' -- 请注意字符串前一定要加N 1、说明:复制表(只复制结构,源表名: |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于sql语句的所有评论