方法一:
DB1 tb1
DB2 tb2
选择DB1 到表的列表那里
选择tb1表 右键 所有任务 数据导出
下一步 选择你要导出的数据库DB1 下一步 选择你要导入的数据库DB2
下一步 选择你要导的表(前面画勾)tb1, 后面对应的是新数据库的表名tb2(默认是相同表名,可修改) 下一步 完了
方法二
sql语句
假设数据表已建立,目的表与源表结构相同。
insert into DB2.dbo.tb2
select * from DB1.dbo.tb1
go
如果是导入具体某几列或有条件导入,相应修改即可。
不同数据库之间复制表的数据的方法:
当表目标表存在时:
insert into 目的数据库..表 select * from 源数据库..表
当目标表不存在时:
select * into 目的数据库..表 from 源数据库..表
--如果在不同的SQL之间:
insert into openrowset('sqloledb','目的服务器名';'sa';'',目的数据库.dbo.表)
select * from 源数据库..表
参考:http://www.cnblogs.com/lbg280/archive/2009/08/29/1556238.html ......
CREATE FUNCTION dbo.UF_GetInvoiceSerials( @bizCode VARCHAR(10))
RETURNS VARCHAR(100)
AS
BEGIN
DECLARE @ret AS VARCHAR(1000)
SELECT @ret=Coalesce(@ret + ', ','') +
CASE e.ID
WHEN '1' THEN c.InvoiceNo
WHEN '2' THEN d.ExpenseNO
ELSE 'N/A'
END
from dbo.Business a WITH(NOLOCK)
LEFT JOIN dbo.Asset_Card b WITH(NOLOCK)
ON b.BusinessID = a.ID
LEFT JOIN dbo.Equipment_Card c WIT ......
方案1 适用于oracle9i以上!
select * from
(select row_number() over(order by sendid desc) rn,m.* from xxt_msgreceive m )
where rn <1010 and rn>=1000
方案2
SELECT * from (SELECT A.*, ROWNUM RN from (SELECT * from xxt_msg where sendstatus=1 order by msgid desc) A WHERE ROWNUM <= 4010)WHERE RN >=4000;
经测试,方案2速度要快 ......
方案1 适用于oracle9i以上!
select * from
(select row_number() over(order by sendid desc) rn,m.* from xxt_msgreceive m )
where rn <1010 and rn>=1000
方案2
SELECT * from (SELECT A.*, ROWNUM RN from (SELECT * from xxt_msg where sendstatus=1 order by msgid desc) A WHERE ROWNUM <= 4010)WHERE RN >=4000;
经测试,方案2速度要快 ......
存储过程getRecordfromPage的内容
//getRecordfromPage.sql
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[getRecordfromPage]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[getRecordfromPage]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE getRecordfromPage
@tblName varchar(255), -- 表名
@strGetFields varchar(1000) = '*', -- 需要返回的列
@fldName varchar(255)='', -- 排序的字段名
@PageSize int = 10, -- 页尺寸
@PageIndex int = 1, -- 页码
@doCount bit = 0, -- 返回记录总数, 非 0 值则返回
@OrderType bit = 0, -- 设置排序类型, 非 0 值则降序
@strWhere varchar(1500) = '' -- 查询条件 (注意: 不要加 where)
AS
declare @strSQL varchar(5000) -- 主语句
declare @strTmp varchar(110) -- 临时变量
declare @strOrder varchar(400) -- 排序类型
if @doCount != 0
begin
if @strWhere !=''
set @strSQL = 'select count(*) as Total from [' + @tblName + '] where '+@strWhere
else
  ......
First:
create table gobo.gobo_om_reservations_2008b as
select * from gobo_om_reservations
where to_char(CREATION_DATE,'yyyy')<'2008'
delete from gobo_om_reservations
where to_char(CREATION_DATE,'yyyy')<'2008'
commit
After 2009Year:
create table gobo.gobo_om_reservations_????b as --????=to_char(sysdate-400,'yyyy')
select * from gobo.gobo_om_reservations_2008b
insert into gobo.gobo_om_reservations_????b
select * from gobo_om_reservations
where to_char(CREATION_DATE,'yyyy')<'????'
delete from gobo_om_reservations
where to_char(CREATION_DATE,'yyyy')<'????'
commit
系統TABLE:mtl_reservations
的TRRIGER如下:
--OTC的訂單在OM發放工單時,會自動保留。
--即把訂單與工單聯系起來,可當訂單銷貨後,
--或工單完工後,該關聯即消失
--為了保持聯系啟用備份的方法。
CREATE OR REPLACE TRIGGER gobo_om_reservatio ......
在存储过程或触发器中使用 Transact-SQL 游标的典型过程为:
声明 Transact-SQL 变量包含游标返回的数据。为每个结果集列声明一个变量。声明足够大的变量来保存列返回的值,并声明变量的类型为可从列数据类型隐式转换得到的数据类型。
使用 DECLARE CURSOR 语句将 Transact-SQL 游标与 SELECT 语句相关联。另外,DECLARE CURSOR 语句还定义游标的特性,例如游标名称以及游标是只读还是只进。
使用 OPEN 语句执行 SELECT 语句并填充游标。
使用 FETCH INTO 语句提取单个行,并将每列中的数据移至指定的变量中。然后,其他 Transact-SQL 语句可以引用那些变量来访问提取的数据值。Transact-SQL 游标不支持提取行块。
使用 CLOSE 语句结束游标的使用。关闭游标可以释放某些资源,例如游标结果集及其对当前行的锁定,但如果重新发出一个 OPEN 语句,则该游标结构仍可用于处理。由于游标仍然存在,此时还不能重新使用该游标的名称。DEALLOCATE 语句则完全释放分配给游标的资源,包括游标名称。释放游标后,必须使用 DECLARE 语句来重新生成游标。
摘自:ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/udb9/html/a5f0904e-0171-44fa-b516-14c6dc91ccd0.htm
declare @ ......