MSSQL网页设计革新SP到一数据库便利制造XSD文件
修复过程包含最多4个阶段,在下面描述。在你开始前,你应该cd到数据库目录和检查表文件的权限,确保他们可被运行mysqld的Unix用户读取(和你,因为你需要存取你正在检查的文件)。如果它拒绝你修改文件,他们也必须是可被你写入的。数据|数据库|革新----------------------------------------------------------------------------------
--革新SP到数据库--
----
--&Old&来历数据库名--
--&New&方针数据库名--
----
--方针数据库中表名为来历数据库中的用户自界说SP、FN等(可按提醒增加--具体提醒今后加)--
--表中的列名则为其参数--
----
--黄宗银--
--2005.01.19--
----------------------------------------------------------------------------------
ALTERPROCEDUREdbo.P_Ref
AS
DECLARE@SQLnvarchar(4000)
--不存在数据库则创立
IFNOTEXISTS(
SELECT
FROMmaster.dbo.sysdatabases
WHERE=&New&
)
BEGIN
CREATEDATABASE&New&
END
--掏出SP、FN、TF其name、id
DECLARE@TblCURSOR
SET@Tbl=CURSORLOCALSCROLLFOR
SELECT,
FROM&Old&.dbo.sysobjects
--要增添革新范例请修正这里
WHERE(LIKEP%ORLIKEF%ORLIKETF%)
AND(type=PORtype=FNORtype=TF)
DECLARE@TblNamenvarchar(100)
DECLARE@TblIDint
--以@TblName为名创立表
OPEN@Tbl
FETCHNEXTFROM@TblINTO@TblName,@TblID
WHILE(@@FETCH_STATUS=0)
BEGIN
--已存在该表则删除
IFEXISTS
(
SELECTFROM&New&.dbo.sysobjects
WHERE=@TblName
ANDtype=U
)
BEGIN
SET@SQL=DROPTABLE+&New&+.dbo.+@TblName
EXECSP_ExecuteSQL@SQL
IF(@@ERROR0)
BEGIN
RAISERROR(删除已存在的表%s失利!,11,1,@TblName)
RETURN
END
END
--假如没有参数则跳过
IF((SELECTCount(*)FROMdbo.syscolumnsWHERELIKE@%AND=@TblID)=0)
BEGIN
FETCHNEXTFROM@TblINTO@TblName,@TblID
CONTINUE
END
--掏出列名及其范例
DECLARE@ColCURSOR
SET@Col=CURSORLOCALSCROLLFOR
SELECT&Old&.dbo.syscolumns.,&Old&.dbo.systypes.
FROM&Old&.dbo.syscolumnsLEFTOUTERJOIN
&Old&.dbo.systypesON&Old&.dbo.syscolumns.xtype=&Old&.dbo.systypes.xtype
WHERE&Old&.dbo.syscolumns.LIKE@%
AND&Old&.dbo.syscolumns.=@TblID
ORDERBY&Old&.dbo.syscolumns.colorder
DECLARE@ColNamenvarchar(50)
DECLARE@ColTypenvarchar(20)
--机关SQL语句
SET@SQL=CREATETABLE&New&.dbo.+@TblName+(
OPEN@Col
FETCHNEXTFROM@ColINTO@ColName,@ColType
DECLARE@ColNameLastnvarchar(50)
SET@ColNameLast=
WHILE(@@FETCH_STATUS=0)
BEGIN
SET@ColName=SubString(@ColName,2,Len(@ColName)-1)
--跳太重复的列
IF(@ColName@ColNameLast)
BEGIN
SET@SQL=@SQL+@ColName++@ColType+,
SET@ColNameLast=@ColName
END
FETCHNEXTFROM@ColINTO@ColName,@ColType
END
SET@SQL=SubString(@SQL,1,Len(@SQL)-1)
SET@SQL=@SQL+)
--实行SQL语句
EXECSP_ExecuteSQL@SQL
IF(@@ERROR0)
BEGIN
RAISERROR(创立表%s失利!,11,1,@TblName)
RETURN
END
--创立下一个表
FETCHNEXTFROM@TblINTO@TblName,@TblID
END
RETURN@@ERROR
提供TCP/IP、ODBC和JDBC等多种数据库连接路径。 代替了原来VB式的错误判断。比Oracle高级不少。 外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。 一直以来个人感觉SQLServer的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。(有次作试验发现有的语句在200万级时还比50万级的相同语句要快show_text的一些提示没有找到解释。一直在奇怪。) 但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。 如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。 你觉得我的非分区索引无法对起子分区,你可以提醒我一下呀!没有任何的提醒,直接就变成了非分区表。不知道这算不算一个bug。大家也可以试试。 入门没那么困难,精通没那么容易 从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。
页:
[1]