本文代码转载自红雨先生

*-----------------------------------------------
* SqlServer 相关函数
*-----------------------------------------------
Clear
*-----------------------------------------------
* 测试 GetTableCode()
*-----------------------------------------------
Local lcDataBaseName, lcTableName, lcTableCode, lnSqlHandle, lcSqlStringConnect
lcTableCode = []
lcDataBaseName = [DCLZ]
lcTableName = "[dbo].[考勤原始表]"
lcSqlStringConnect = [driver={Sql server};server=(local);uid=sa;pwd=Admin;database=Master]
lnSqlHandle = Sqlstringconnect( lcSqlStringConnect )
If lnSqlHandle > 0
= SQLSetprop(lnSqlHandle,[DispWarnings], (.T.))
lcTableCode = GetTableCode( lnSqlHandle, lcDataBaseName, lcTableName )
= SQLDisconnect(lnSqlHandle)
If !Empty(lcTableCode)
_Cliptext = lcTableCode
Modify File ([(]+lcDataBaseName+[)]+lcTableName+[.sql]) Nowait
Keyboard [{CTRL+A}]
Keyboard [{CTRL+V}]
Endif
Endif
Return

*-----------------------------------------------
* 测试 GetProcedreCode()
*-----------------------------------------------
Local lcDataBaseName, lcProcedreName, lcProcedreCode, lnSqlHandle, lcSqlStringConnect
lcProcedreCode = []
lcDataBaseName = [DCLZ]
lcProcedreName = [dbo.ins考勤原始表]
lcSqlStringConnect = [driver={Sql server};server=(local);uid=sa;pwd=Admin;database=Master]
lnSqlHandle = Sqlstringconnect( lcSqlStringConnect )
If lnSqlHandle > 0
= SQLSetprop(lnSqlHandle,[DispWarnings], (.T.))
lcProcedreCode = GetProcedreCode( lnSqlHandle, lcDataBaseName, lcProcedreName )
= SQLDisconnect(lnSqlHandle)
If !Empty(lcProcedreCode)
_Cliptext = lcProcedreCode
Modify File ([(]+lcDataBaseName+[)]+lcProcedreName+[.sql]) Nowait
Keyboard [{CTRL+A}]
Keyboard [{CTRL+V}]
Endif
Endif
Return
*-----------------------------------------------

*-----------------------------------------------
* 函数: 获取SQL Server加密存储过程、函数、
* 视图、触发器 脚本,字节不受限制
* 设计: 红雨
* 时间: 2004.04.01
*-----------------------------------------------
Function GetProcedreCode( tnSqlHandle, tcDataBase, tcObjectName )
*-----------------------------------------------
#Define CR Chr(13)+Chr(10)
Local lcReturn, lcTmpCursor, lcMyProcedure
m.lcReturn = []
m.lcTmpCursor = [T]+Sys(2015)
m.lcDataBase = Iif(Type([m.tcDataBase])=[C] And !Empty(m.tcDataBase), m.tcDataBase, [Master])
If Used(m.lcTmpCursor)
Use In (m.lcTmpCursor)
Endif
*-----------------------------------------------
If Type([m.tnSqlHandle])=[N] And m.tnSqlHandle>0 And Type([m.tcObjectName])=[C]
= Sqlexec(m.tnSqlHandle, "use " + m.lcDataBase )
m.lcMyProcedure = "CREATE PROCEDURE " + m.lcTmpCursor + "( @objectName varchar(50) )" ;
+CR+ " AS" ;
+CR+ " begin" ;
+CR+ " set nocount on" ;
+CR+ " begin tran" ;
+CR+ " "
m.lcMyProcedure = m.lcMyProcedure ;
+CR+ " Declare @objectname1 varchar(100)," ;
+CR+ " @orgvarbin varbinary(8000)" ;
+CR+ " Declare @sql1 nvarchar(4000)," ;
+CR+ " @sql2 varchar(8000)," ;
+CR+ " @sql3 nvarchar(4000)," ;
+CR+ " @sql4 nvarchar(4000)" ;
+CR+ " Declare @OrigSpText1 nvarchar(4000)," ;
+CR+ " @OrigSpText2 nvarchar(4000)," ;
+CR+ " @OrigSpText3 nvarchar(4000)," ;
+CR+ " @resultsp nvarchar(4000)," ;
+CR+ " @ptrval binary(16)," ;
+CR+ " @prvlen Int" ;
+CR+ " Declare @i Int," ;
+CR+ " @Status Int," ;
+CR+ " @Type varchar(10)," ;
+CR+ " @parentid Int" ;
+CR+ " Declare @colid Int," ;
+CR+ " @N Int," ;
+CR+ " @q Int," ;
+CR+ " @j Int," ;
+CR+ " @k Int," ;
+CR+ " @Encrypted Int," ;
+CR+ " @Number Int"
m.lcMyProcedure = m.lcMyProcedure ;
+CR+ " Select @Type=xtype, @parentid=parent_obj From sysobjects Where Id=object_id(@ObjectName)" ;
+CR+ " " ;
+CR+ " If exists (select * from dbo.sysobjects where id = object_id(N'#result') and OBJECTPROPERTY(id, N'IsUserTable') = 1)" ;
+CR+ " Drop Table #result" ;
+CR+ " Create Table #result(ProcName varchar(50), ProcCode text)" ;
+CR+ " Insert #result values (@ObjectName, '')" ;
+CR+ " " ;
+CR+ " If exists (select * from dbo.sysobjects where id = object_id(N'#temp') and OBJECTPROPERTY(id, N'IsUserTable') = 1)" ;
+CR+ " Drop Table #temp" ;
+CR+ " Create Table #temp(Number Int,colid Int,ctext varbinary(8000),Encrypted Int,Status Int)" ;
+CR+ " Insert #temp Select Number,colid,ctext,Encrypted,Status From syscomments Where Id = object_id(@objectName)" ;
+CR+ " " ;
+CR+ " Select @Number=Max(Number) From #temp" ;
+CR+ " Set @k=0" ;
+CR+ " "
m.lcMyProcedure = m.lcMyProcedure ;
+CR+ " While @k<=@Number" ;
+CR+ " Begin" ;
+CR+ " If Exists(Select 1 From syscomments Where Id=object_id(@objectname) And Number=@k)" ;
+CR+ " Begin" ;
+CR+ " If @Type='P'" ;
+CR+ " Set @sql1=(" ;
+CR+ " CASE" ;
+CR+ " When @Number>1 Then 'ALTER PROCEDURE '+ @objectName +';'+Rtrim(@k)+' WITH ENCRYPTION AS '" ;
+CR+ " Else 'ALTER PROCEDURE '+ @objectName+' WITH ENCRYPTION AS '" ;
+CR+ " END )" ;
+CR+ " If @Type='TR'" ;
+CR+ " Begin" ;
+CR+ " Declare @parent_obj varchar(255)," ;
+CR+ " @tr_parent_xtype varchar(10)" ;
+CR+ " Select @parent_obj = parent_obj From sysobjects Where Id=object_id(@objectName)" ;
+CR+ " Select @tr_parent_xtype = xtype From sysobjects Where Id=@parent_obj" ;
+CR+ " If @tr_parent_xtype='V'" ;
+CR+ " Begin" ;
+CR+ " Set @sql1='ALTER TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION INSTERD OF INSERT AS PRINT 1 '" ;
+CR+ " End" ;
+CR+ " Else" ;
+CR+ " Begin" ;
+CR+ " Set @sql1='ALTER TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION FOR INSERT AS PRINT 1 '" ;
+CR+ " End" ;
+CR+ " End" ;
+CR+ " If @Type='FN' Or @Type='TF' Or @Type='IF'" ;
+CR+ " Set @sql1=(" ;
+CR+ " Case @Type" ;
+CR+ " When 'TF' Then 'ALTER FUNCTION '+ @objectName+'(@a char(1)) returns @b table(a varchar(10)) with encryption as begin insert @b select @a return end '" ;
+CR+ " When 'FN' Then 'ALTER FUNCTION '+ @objectName+'(@a char(1)) returns char(1) with encryption as begin return @a end'" ;
+CR+ " When 'IF' Then 'ALTER FUNCTION '+ @objectName+'(@a char(1)) returns table with encryption as return select @a as a'" ;
+CR+ " END )" ;
+CR+ " If @Type='V'" ;
+CR+ " Set @sql1='ALTER VIEW '+@objectname+' WITH ENCRYPTION AS SELECT 1 as f'" ;
+CR+ " "
m.lcMyProcedure = m.lcMyProcedure ;
+CR+ " Set @q=Len(@sql1)" ;
+CR+ " Set @sql1=@sql1+Replicate('-',4000-@q)" ;
+CR+ " Select @sql2=Replicate('-',8000)" ;
+CR+ " Set @sql3='exec(@sql1'" ;
+CR+ " Select @colid=Max(colid) From #temp Where Number=@k" ;
+CR+ " Set @N=1" ;
+CR+ " While @N<=Ceiling(1.0*(@colid-1)/2) And Len(@sQL3)<=3996" ;
+CR+ " Begin" ;
+CR+ " Set @sql3=@sql3+'+@'" ;
+CR+ " Set @N=@N+1" ;
+CR+ " End" ;
+CR+ " Set @sql3=@sql3+')'" ;
+CR+ " Exec sp_executesql @sql3,N'@Sql1 nvarchar(4000),@ varchar(8000)',@sql1=@sql1,@=@sql2" ;
+CR+ " End" ;
+CR+ " Set @k=@k+1" ;
+CR+ " End" ;
+CR+ " "
m.lcMyProcedure = m.lcMyProcedure ;
+CR+ " Set @k=0" ;
+CR+ " While @k<=@Number" ;
+CR+ " Begin" ;
+CR+ " If Exists(Select 1 From syscomments Where Id=object_id(@objectname) And Number=@k)" ;
+CR+ " Begin" ;
+CR+ " Select @colid=Max(colid) From #temp Where Number=@k" ;
+CR+ " Set @N=1" ;
+CR+ " While @N<=@colid" ;
+CR+ " Begin" ;
+CR+ " Select @OrigSpText1=ctext,@Encrypted=Encrypted,@Status=Status From #temp Where colid=@N And Number=@k" ;
+CR+ " Set @OrigSpText3=(Select ctext From syscomments Where Id=object_id(@objectName) And colid=@N And Number=@k)" ;
+CR+ " If @N=1" ;
+CR+ " Begin" ;
+CR+ " "
m.lcMyProcedure = m.lcMyProcedure ;
+CR+ " If @Type='P'" ;
+CR+ " Set @OrigSpText2=(" ;
+CR+ " CASE" ;
+CR+ " When @Number>1 Then 'CREATE PROCEDURE '+ @objectName +';'+Rtrim(@k)+' WITH ENCRYPTION AS '" ;
+CR+ " Else 'CREATE PROCEDURE '+ @objectName +' WITH ENCRYPTION AS '" ;
+CR+ " END )" ;
+CR+ " "
m.lcMyProcedure = m.lcMyProcedure ;
+CR+ " If @Type='FN' Or @Type='TF' Or @Type='IF'" ;
+CR+ " Set @OrigSpText2=(" ;
+CR+ " Case @Type" ;
+CR+ " When 'TF' Then 'CREATE FUNCTION '+ @objectName+'(@a char(1)) returns @b table(a varchar(10)) with encryption as begin insert @b select @a return end '" ;
+CR+ " When 'FN' Then 'CREATE FUNCTION '+ @objectName+'(@a char(1)) returns char(1) with encryption as begin return @a end'" ;
+CR+ " When 'IF' Then 'CREATE FUNCTION '+ @objectName+'(@a char(1)) returns table with encryption as return select @a as a'" ;
+CR+ " END )" ;
+CR+ " "
m.lcMyProcedure = m.lcMyProcedure ;
+CR+ " If @Type='TR'" ;
+CR+ " Begin" ;
+CR+ " If @tr_parent_xtype='V'" ;
+CR+ " Begin" ;
+CR+ " Set @OrigSpText2='CREATE TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION INSTEAD OF INSERT AS PRINT 1 '" ;
+CR+ " End" ;
+CR+ " Else" ;
+CR+ " Begin" ;
+CR+ " Set @OrigSpText2='CREATE TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION FOR INSERT AS PRINT 1 '" ;
+CR+ " End" ;
+CR+ " End" ;
+CR+ " "
m.lcMyProcedure = m.lcMyProcedure ;
+CR+ " If @Type='V'" ;
+CR+ " Set @OrigSpText2='CREATE VIEW '+@objectname+' WITH ENCRYPTION AS SELECT 1 as f'" ;
+CR+ " " ;
+CR+ " Set @q=4000-Len(@OrigSpText2)" ;
+CR+ " Set @OrigSpText2=@OrigSpText2+Replicate('-',@q)" ;
+CR+ " End" ;
+CR+ " Else" ;
+CR+ " Begin" ;
+CR+ " Set @OrigSpText2=Replicate('-', 4000)" ;
+CR+ " End" ;
+CR+ " "
lcMyProcedure = lcMyProcedure ;
+CR+ " Set @i=1" ;
+CR+ " Set @resultsp = Replicate(N'A', (datalength(@OrigSpText1) / 2))" ;
+CR+ " " ;
+CR+ " While @i<=datalength(@OrigSpText1)/2" ;
+CR+ " Begin" ;
+CR+ " Set @resultsp = Stuff(@resultsp, @i, 1," ;
+CR+ " NCHAR(UNICODE(Substring(@OrigSpText1, @i, 1)) ^" ;
+CR+ " (UNICODE(Substring(@OrigSpText2, @i, 1)) ^" ;
+CR+ " UNICODE(Substring(@OrigSpText3, @i, 1)))))" ;
+CR+ " Set @i=@i+1" ;
+CR+ " End" ;
+CR+ " "
m.lcMyProcedure = m.lcMyProcedure ;
+CR+ " Set @orgvarbin=cast(@OrigSpText1 As varbinary(8000))" ;
+CR+ " Set @resultsp=(" ;
+CR+ " Case " ;
+CR+ " When @Encrypted=1 Then @resultsp" ;
+CR+ " Else convert(nvarchar(4000)," ;
+CR+ " Case " ;
+CR+ " When @Status&2=2 Then uncompress(@orgvarbin)" ;
+CR+ " Else @orgvarbin" ;
+CR+ " END )" ;
+CR+ " END )" ;
+CR+ " Print @resultsp" ;
+CR+ " select @ptrval = TEXTPTR(ProcCode) from #result" ;
+CR+ " select @prvlen = DATALENGTH(ProcCode) from #result" ;
+CR+ " UPDATETEXT #result.ProcCode @ptrval @prvlen 0 @resultsp" ;
+CR+ " "
m.lcMyProcedure = m.lcMyProcedure ;
+CR+ " Set @N=@N+1" ;
+CR+ " End" ;
+CR+ " End" ;
+CR+ " Set @k=@k+1" ;
+CR+ " End" ;
+CR+ " Select * from #result" ;
+CR+ " Drop Table #temp" ;
+CR+ " Drop Table #result" ;
+CR+ " Rollback Tran" ;
+CR+ " End"
*-----------------------------------------------
= Sqlexec(m.tnSqlHandle, "if exists (select * from dbo.sysobjects" ;
+CR+ " where id = object_id(N'[dbo].[" + m.lcTmpCursor + "]')" ;
+CR+ " and OBJECTPROPERTY(id, N'IsProcedure') = 1)" ;
+CR+ " drop procedure [dbo].[" + m.lcTmpCursor + "]")
= Sqlexec(m.tnSqlHandle, m.lcMyProcedure )
= Sqlexec(m.tnSqlHandle, "Exec " + m.lcTmpCursor + " ?tcObjectName", m.lcTmpCursor)
= Sqlexec(m.tnSqlHandle, "if exists (select * from dbo.sysobjects" ;
+CR+ " where id = object_id(N'[dbo].[" + m.lcTmpCursor + "]')" ;
+CR+ " and OBJECTPROPERTY(id, N'IsProcedure') = 1)" ;
+CR+ " drop procedure [dbo].[" + m.lcTmpCursor + "]")
*-----------------------------------------------
If Used(m.lcTmpCursor)
Select (m.lcTmpCursor)
m.lcReturn = Alltrim(ProcCode)
Use In (m.lcTmpCursor)
Endif
Endif
Return m.lcReturn
Endfunc

*-----------------------------------------------
* 函数: 获取SQL Server表脚本(创建、触发器、索引、约束)
* 设计: 红雨
* 时间: 2005.04.01
*-----------------------------------------------
Function GetTableCode( tnSqlHandle, tcDataBase, tcObjectName )
*-----------------------------------------------
#Define CR Chr(13)+Chr(10)
Local lcReturn, lcTmpCursor, lcMyProcedure
m.lcReturn = []
m.lcTmpCursor = [T]+Sys(2015)
m.lcDataBase = Iif(Type([m.tcDataBase])=[C] And !Empty(m.tcDataBase), m.tcDataBase, [Master])
If Used(m.lcTmpCursor)
Use In (m.lcTmpCursor)
Endif
*-----------------------------------------------
If Type([m.tnSqlHandle])=[N] And m.tnSqlHandle>0 And Type([tcObjectName])=[C]
= Sqlexec(m.tnSqlHandle, [use ] + m.lcDataBase )
*-----------------------------------------------
* 建立表的脚本
*-----------------------------------------------
= SQLExec(m.tnSqlhandle,[EXEC sp_MShelpcolumns N'] + m.tcObjectName + [', 512, @orderby = 'id'] , m.lcTmpCursor)
If Used(m.lcTmpCursor)
Select (m.lcTmpCursor)
m.lcReturn = m.lcReturn + CR + [--- 建立表的脚本] + CR
m.lcReturn = m.lcReturn + [If Exists (Select * From dbo.SysObjects Where id = object_id(N']+m.tcObjectName+[')] ;
+ [ and OBJECTPROPERTY(id, N'IsTable') = 1)]
m.lcReturn = m.lcReturn + CR + [ Drop table ] + m.tcObjectName
m.lcReturn = m.lcReturn + CR + [GO]
m.lcReturn = m.lcReturn + CR + [Create Table ] + m.tcObjectName + [(]
Local lTextImage
m.lTextImage = .F.
Scan
m.lTextImage = m.lTextImage Or Inlist(Upper(Alltrim(Col_TypeName)),[TEXT],[NTEXT],[IMAGE])
m.lcReturn = m.lcReturn + CR + " [" + Alltrim(Col_Name) + "] ";
+ "[" + Alltrim(Col_TypeName) + "]" ;
+ Iif(Col_Flags=0, [], " (" + Iif(Isnull(Col_Prec),Alltrim(Str(Col_Len)),Alltrim(Str(Col_Prec))) ;
+ Iif(Isnull(Col_Scale), [], [, ] + Alltrim(Str(Col_Scale))) + ")" ) ;
+ Iif(Isnull(Collation),[],[ Collate ] + Alltrim(Collation)) ;
+ Iif(Col_Identity,[ Identity (1, 1)],[]) ;
+ Iif(Col_Null, [ Null] ,[ Not Null]) + [,]
Endscan
m.lcReturn = Left(m.lcReturn,Len(m.lcReturn)-1) + CR + ") ON [PRIMARY]"
m.lcReturn = m.lcReturn + Iif(m.lTextImage," TEXTIMAGE_ON [PRIMARY]",[]) + CR + [GO] + CR
Use In (m.lcTmpCursor)
Endif
*-----------------------------------------------
* 表的索引脚本
*-----------------------------------------------
= SQLExec(m.tnSqlhandle,[EXEC sp_MShelpindex N'] + m.tcObjectName +[' , NULL, 1] , m.lcTmpCursor)
If Used(m.lcTmpCursor) And Reccount(m.lcTmpCursor) > 0
Local cFieldName, nIndex
Select (m.lcTmpCursor)
m.lcReturn = m.lcReturn + CR + [--- 表的索引脚本] ;
+CR+ [Create] + Iif(.F.,[ Unique],[]) + Iif(indid=1,[ Clustered],[]) ;
+CR+ " Index [" +Alltrim(Name)+ "] On " + m.tcObjectName +[ (]
For m.nIndex = 1 To 16
m.cFieldName = [IndCol]+Alltrim(Str(nIndex))
If Isnull(Evaluate(m.cFieldName))
Exit
Endif
m.lcReturn = m.lcReturn + "[" + Alltrim(Evaluate(m.cFieldName)) + "]" ;
+ Iif(Bitand(2^(nIndex-1),Descending) = 2^(nIndex-1), [ Desc,], [ ,])
Endfor
m.lcReturn = Left(m.lcReturn,Len(m.lcReturn)-1) + ") "
m.lcReturn = m.lcReturn ;
+CR+ [With] ;
+CR+ [ DROP_EXISTING] ;
+CR+ " ON [PRIMARY]" + CR + [GO] + CR
Use In (m.lcTmpCursor)
Endif
*-----------------------------------------------
* 约束和触发器
*-----------------------------------------------
= Sqlexec(m.tnSqlHandle, [select Name,xType from SysObjects ] ;
+ [ where parent_obj=object_id(N']+m.tcObjectName+[') order by xType], m.lcTmpCursor)
If Used(m.lcTmpCursor)
Select (m.lcTmpCursor)
Scan
m.lcReturn = m.lcReturn + CR
lcName = Alltrim(Name)
Do Case
Case Upper(Alltrim(xType))=[TR]
m.lcReturn = m.lcReturn + [--- 触发器脚本: ] + lcName + CR ;
+ GetProcedreCode( m.tnSqlHandle, m.lcDataBase, lcName )
Case Upper(Alltrim(xType))=[TF]
m.lcReturn = m.lcReturn + [--- 表函数: ] + lcName + CR ;
+ GetProcedreCode( m.tnSqlHandle, m.lcDataBase, lcName )
Case Upper(Alltrim(xType))=[IF]
m.lcReturn = m.lcReturn + [--- 内嵌表函数: ] + lcName + CR ;
+ GetProcedreCode( m.tnSqlHandle, m.lcDataBase, lcName )
Case Upper(Alltrim(xType))=[D]
m.lcReturn = m.lcReturn + [--- 默认值或 DEFAULT 约束: ] + lcName + CR ;
+ [ALTER TABLE ] + m.tcObjectName + [ WITH NOCHECK ADD] + CR ;
+ " CONSTRAINT [" + lcName + "] DEFAULT " ;
+ GetProcedreCode( m.tnSqlHandle, m.lcDataBase, lcName ) ;
+ " FOR [" + Getwordnum(lcName,3,[_]) + "]"
Case Upper(Alltrim(xType))=[C]
m.lcReturn = m.lcReturn + [--- CHECK 约束: ] + lcName + CR ;
+ [ALTER TABLE ] + m.tcObjectName + [ WITH NOCHECK ADD] + CR ;
+ " CONSTRAINT [" + lcName + "] CHECK " ;
+ GetProcedreCode( m.tnSqlHandle, m.lcDataBase, lcName )
Case Upper(Alltrim(xType))=[F]
m.lcReturn = m.lcReturn + [--- FOREIGN KEY 约束: ] + lcName + CR ;
+ [ALTER TABLE ] + m.tcObjectName + [ WITH NOCHECK ADD] + CR ;
+ " CONSTRAINT [" + lcName + "] FOREIGN KEY " ;
+ GetProcedreCode( m.tnSqlHandle, m.lcDataBase, lcName )
Case Upper(Alltrim(xType))=[PK]
m.lcReturn = m.lcReturn + [--- PRIMARY KEY 约束: ] + lcName + CR ;
+ [ALTER TABLE ] + m.tcObjectName + [ ADD] + CR ;
+ " CONSTRAINT [" + lcName + "] PRIMARY KEY " ;
+ GetProcedreCode( m.tnSqlHandle, m.lcDataBase, lcName )
Case Upper(Alltrim(xType))=[UQ]
m.lcReturn = m.lcReturn + [--- UNIQUE 约束: ] + lcName + CR ;
+ [ALTER TABLE ] + m.tcObjectName + [ ADD] + CR ;
+ " CONSTRAINT [" + lcName + "] UNIQUE " ;
+ GetProcedreCode( m.tnSqlHandle, m.lcDataBase, lcName )
Otherwise
Endcase
m.lcReturn = m.lcReturn + CR + [GO] + CR
Endscan
Use In (m.lcTmpCursor)
Endif
*-----------------------------------------------
Endif
Return m.lcReturn
Endfunc

VFP获取 SQL Server 的数据表、触发器、存储过程、视图等脚本的更多相关文章

  1. Sql Server删除数据表中重复记录 三种方法

    本文介绍了Sql Server数据库中删除数据表中重复记录的方法. [项目]数据库中users表,包含u_name,u_pwd两个字段,其中u_name存在重复项,现在要实现把重复的项删除![分析]1 ...

  2. MS SQL Server中数据表、视图、函数/方法、存储过程是否存在判断及创建

    前言 在操作数据库的时候经常会用到判断数据表.视图.函数/方法.存储过程是否存在,若存在,则需要删除后再重新创建.以下是MS SQL Server中的示例代码. 数据表(Table) 创建数据表的时候 ...

  3. SQL Server 的数据表简单操作

    --创建数据表--[use 要创建数据表的数据库名称go]create table 要创建的表名(字段名 数据类型[长度] [null | not null] [primary key],... .. ...

  4. Azure 云平台用 SQOOP 将 SQL server 2012 数据表导入 HIVE / HBASE

    My name is Farooq and I am with HDinsight support team here at Microsoft. In this blog I will try to ...

  5. SQL Server 查看数据表占用空间大小的SQL语句

    ) ) if object_id('tempdb..#space') is not null drop table #space ),rows ),data ),index_size ),unused ...

  6. SQL Server 2000 ——系统表和系统视图

    一.系统表 数据字典的详细信息请查SQL SERVER BOL,这里仅列出一部分. 1.1.sysservers 1.查看所有本地服务器及链接服务器 select * from master..sys ...

  7. [转]Sql server 大数据量分页存储过程效率测试附代码

    本文转自:http://www.cnblogs.com/lli0077/archive/2008/09/03/1282862.html 在项目中,我们经常遇到或用到分页,那么在大数据量(百万级以上)下 ...

  8. SQL Server 2012 - 数据表的操作

     unicode:双字节编码      variable:可变的    character:字符 T-SQL:  Transact Structured Query Language unique:唯 ...

  9. 获取SQL server 中的表和说明

    SELECT 表名 = case when a.colorder = 1 then d.name                    else '' end,        表说明 = case w ...

随机推荐

  1. JS怎样做四舍五入

    1 .tofixed方法 toFixed() 方法可把 Number 四舍五入为指定小数位数的数字.例如将数据Num保留2位小数,则表示为:toFixed(Num):但是其四舍五入的规则与数学中的规则 ...

  2. codeforces 上的找两人的幸运天

    Bob and Alice are often participating in various programming competitions. Like many competitive pro ...

  3. 洛谷 P1463 [POI2002][HAOI2007]反素数

    题目链接 题目描述 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数1, ...

  4. Jenkins配置邮件发送测试报告

    前言 在之前的文章(Jenkins自动执行python脚本输出测试报告)中,我们已成功实现利用Jenkins自动执行python脚本,输出并可直接在界面上查看测试报告,这里我们还差最后一步,我们需要将 ...

  5. 高通量计算框架HTCondor(一)——概述

    目录 1. 正文 2. 目录 3. 参考 4. 相关 1. 正文 HTCondor是威斯康星大学麦迪逊分校构建的分布式计算软件和相关技术,用来处理高通量计算(High Throughput Compu ...

  6. Mysql 8+ 版本完全踩坑记录

    问题是这样 刚霍霍了一台腾讯云服务器需要安装mysql 然后就选择了8+这个版本. 安装步骤网上有的是. 我只写最主要的部分 绝对不出错 外网可访问 .net java都可以调用 其实不指望有人看 就 ...

  7. KD-tree 学习小记

    考 \(NOI\) 时不会,感觉很亏.于是学了一上午,写了一晚上. 感觉这东西就是个复杂度玄学的高级暴力 (大雾 KD-tree 基本信息 \(D\) 就是 \(Dimension\) ,维度的意思. ...

  8. Creating Custom Helper Methods 创建自定义辅助器方法----辅助器方法 ------ 精通ASP.NET MVC 5

    创建内联的辅助器方法 和 拓展方法 好像类似的功能. 不过写在前台更直观

  9. 为什么RChain区块链上一定要有REV?

    RChain区块链网络上一定要有REV吗?它的作用是什么?在这篇文章里,RChain创始人Mr. Greg Meredith做了详细解读,便于业界和社区对RChain网络有更深入的认识. 作者:Gre ...

  10. 光流法draw_flow()函数报错

    光流法draw_flow()函数报错 import cv2 from scipy import * def draw_flow(im, flow, step=16): ""&quo ...