本文代码转载自红雨先生

*-----------------------------------------------
* 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. STM32串口遇到的一个问题

    做HLW8032电能表项目中关于USART使用DMA接收定长数据的问题 1:由于HLW8032芯片一上电,芯片就会通过串口每隔50ms向STM32发送24字节的数据,且我不能通过STM32控制HLW8 ...

  2. cogs 176. [USACO Feb07] 奶牛聚会 dijkstra

    176. [USACO Feb07] 奶牛聚会 ★☆   输入文件:sparty.in   输出文件:sparty.out   简单对比时间限制:3 s   内存限制:16 MB 译: zqzas N ...

  3. js强制限制输入允许两位小数

    <input type="text" value="@item.CostCash.Value.ToString("#0.00")" c ...

  4. 测试工具Fiddler(三)—— 常见功能介绍

    Fiddler的功能面板 1.statistics:请求的性能指标:全世界范围的性能测试: RTP:一个请求的从发送出去到返回的时间: Show chart可以看出图表的示例: 2.inspector ...

  5. NMI计算

    NMI计算 NMI(Normalized Mutual Information)标准化互信息,常用在聚类中,度量两个聚类结果的相近程度.是社区发现(community detection)的重要衡量指 ...

  6. Manipulating Data from Oracle Object Storage to ADW with Oracle Data Integrator (ODI)

    0. Introduction and Prerequisites This article presents an overview on how to use Oracle Data Integr ...

  7. [DP][SA][可持久化线段树]黑红兔

    源自 xyz32768 菜鸡的 FJ 省冬令营模拟赛题 原题 CF1063F Statement 给定一个长度为 \(n\) 的字符串 \(s\),仅包含小写英文字母 要从中从左往右选出若干段不相交的 ...

  8. 频繁插入(insert)的业务,用什么存储引擎更合适? | 数据库系列(转)

    本文来自微信公众号 继续回答星球水友提问: 沈老师,MyISAM只支持表锁,但网上文章却说,在并发插入量比较大的时候,比较适合使用MyISAM,这矛盾吗? 这个问题,涉及MySQL表锁的一些细节,借着 ...

  9. 20191212模拟赛 问题B

    题目: 分析: 上来看到k=2,... SB杜教筛phi 有点感冒,这把养生一点... 于是写了55分走人了.. 下来一看挺简单的啊2333 不考虑gcd时,构造数列的方案为C(N+K-1,K) 考虑 ...

  10. 团队第一次作业(软工C#造梦厂)

    一.团队简介 a.团队名称:软工C#造梦厂 b.队员列表 姓名 学号 张旭(组长) 201731024123 周成杰 201731024136 邹扬锋 201731024134 赵俊安 2017310 ...