我的数据库在上传到服务器时,不知为什么存储过程没有上传上去,数据库是SQL2005的,有那位高手知道怎样把存储过程在上传上去,谢谢!

解决方案 »

  1.   

    How did you 上传数据库到服务器时?
      

  2.   

    我没有完全看懂你的意思.猜测如下:
    通过链接连接上服务器,把存储过程的代码运行一下.
    不同服务器数据库之间的数据操作--创建链接服务器 
    exec sp_addlinkedserver 'ITSV' , '' , 'SQLOLEDB' , '远程服务器名或ip地址' 
    exec sp_addlinkedsrvlogin 'ITSV' , 'false' , null , '用户名' , '密码' --查询示例 
    select * from ITSV.数据库名.dbo.表名 --导入示例 
    select * into 表 from ITSV.数据库名.dbo.表名 --以后不再使用时删除链接服务器 
    exec sp_dropserver 'ITSV' , 'droplogins' --连接远程/局域网数据(openrowset/openquery/opendatasource) 
    --1、openrowset --查询示例 
    select * from openrowset('SQLOLEDB' , 'sql服务器名' ; '用户名' ; '密码' , 数据库名.dbo.表名) --生成本地表 
    select * into 表 from openrowset('SQLOLEDB' , 'sql服务器名' ; '用户名' ; '密码' , 数据库名.dbo.表名) --把本地表导入远程表 
    insert openrowset( 'SQLOLEDB' , 'sql服务器名' ; '用户名' ; '密码' , 数据库名.dbo.表名) 
    select *from 本地表 --更新本地表 
    update b 
    set b.列A=a.列A 
    from openrowset('SQLOLEDB' , 'sql服务器名' ; '用户名' ; '密码' , 数据库名.dbo.表名) as a inner join 本地表 b 
    on a.column1 = b.column1 --openquery用法需要创建一个连接 --首先创建一个连接创建链接服务器 
    exec sp_addlinkedserver 'ITSV' , '' , 'SQLOLEDB' , '远程服务器名或ip地址' 
    --查询 
    select * 
    FROM openquery(ITSV , 'SELECT * FROM 数据库.dbo.表名') 
    --把本地表导入远程表 
    insert openquery(ITSV , 'SELECT * FROM 数据库.dbo.表名') 
    select * from 本地表 
    --更新本地表 
    update b 
    set b.列B=a.列B 
    FROM openquery(ITSV , 'SELECT * FROM 数据库.dbo.表名') as a 
    inner join 本地表 b on a.列A=b.列A --3、opendatasource/openrowset 
    SELECT * 
    FROM opendatasource('SQLOLEDB' , 'Data Source=ip/ServerName ; User ID=登陆名 ; Password=密码').test.dbo.roy_ta 
    --把本地表导入远程表 
    insert opendatasource('SQLOLEDB' , 'Data Source=ip/ServerName ; User ID=登陆名 ; Password=密码').数据库.dbo.表名 
    select * from 本地表 
      

  3.   


    SQL Server Import/Export wizard will only import/export data, not stored proc, triggers. In fact, it won't even import constraints/indices and lots of important attributes of a table.You should connect to the remote database instance via SSMS and script all tables, stored procs, views, functions (and any other objects such as Service Broker) on the remote database and then use import/export wizard to move data into the remote database instance. Better yet, you should backup your development database, FTP it to the remote server and then restore the remote database instance.
      

  4.   

    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    go
    ALTER PROCEDURE [dbo].[aspnet_AnyDataInTables]
        @TablesToCheck int
    AS
    BEGIN
        -- Check Membership table if (@TablesToCheck & 1) is set
        IF ((@TablesToCheck & 1) <> 0 AND
            (EXISTS (SELECT name FROM sysobjects WHERE (name = N'vw_aspnet_MembershipUsers') AND (type = 'V'))))
        BEGIN
            IF (EXISTS(SELECT TOP 1 UserId FROM dbo.aspnet_Membership))
            BEGIN
                SELECT N'aspnet_Membership'
                RETURN
            END
        END    -- Check aspnet_Roles table if (@TablesToCheck & 2) is set
        IF ((@TablesToCheck & 2) <> 0  AND
            (EXISTS (SELECT name FROM sysobjects WHERE (name = N'vw_aspnet_Roles') AND (type = 'V'))) )
        BEGIN
            IF (EXISTS(SELECT TOP 1 RoleId FROM dbo.aspnet_Roles))
            BEGIN
                SELECT N'aspnet_Roles'
                RETURN
            END
        END    -- Check aspnet_Profile table if (@TablesToCheck & 4) is set
        IF ((@TablesToCheck & 4) <> 0  AND
            (EXISTS (SELECT name FROM sysobjects WHERE (name = N'vw_aspnet_Profiles') AND (type = 'V'))) )
        BEGIN
            IF (EXISTS(SELECT TOP 1 UserId FROM dbo.aspnet_Profile))
            BEGIN
                SELECT N'aspnet_Profile'
                RETURN
            END
        END    -- Check aspnet_PersonalizationPerUser table if (@TablesToCheck & 8) is set
        IF ((@TablesToCheck & 8) <> 0  AND
            (EXISTS (SELECT name FROM sysobjects WHERE (name = N'vw_aspnet_WebPartState_User') AND (type = 'V'))) )
        BEGIN
            IF (EXISTS(SELECT TOP 1 UserId FROM dbo.aspnet_PersonalizationPerUser))
            BEGIN
                SELECT N'aspnet_PersonalizationPerUser'
                RETURN
            END
        END    -- Check aspnet_PersonalizationPerUser table if (@TablesToCheck & 16) is set
        IF ((@TablesToCheck & 16) <> 0  AND
            (EXISTS (SELECT name FROM sysobjects WHERE (name = N'aspnet_WebEvent_LogEvent') AND (type = 'P'))) )
        BEGIN
            IF (EXISTS(SELECT TOP 1 * FROM dbo.aspnet_WebEvent_Events))
            BEGIN
                SELECT N'aspnet_WebEvent_Events'
                RETURN
            END
        END    -- Check aspnet_Users table if (@TablesToCheck & 1,2,4 & 8) are all set
        IF ((@TablesToCheck & 1) <> 0 AND
            (@TablesToCheck & 2) <> 0 AND
            (@TablesToCheck & 4) <> 0 AND
            (@TablesToCheck & 8) <> 0 AND
            (@TablesToCheck & 32) <> 0 AND
            (@TablesToCheck & 128) <> 0 AND
            (@TablesToCheck & 256) <> 0 AND
            (@TablesToCheck & 512) <> 0 AND
            (@TablesToCheck & 1024) <> 0)
        BEGIN
            IF (EXISTS(SELECT TOP 1 UserId FROM dbo.aspnet_Users))
            BEGIN
                SELECT N'aspnet_Users'
                RETURN
            END
            IF (EXISTS(SELECT TOP 1 ApplicationId FROM dbo.aspnet_Applications))
            BEGIN
                SELECT N'aspnet_Applications'
                RETURN
            END
        END
    END
    我的数据库中这个存储过程为什么在本地会运行,可我在远程连接到服务器数据库中执行时却提示错误"消息 208,级别 16,状态 6,过程 aspnet_AnyDataInTables,第 81 行
    Invalid object name 'dbo.aspnet_AnyDataInTables'.
    "不会正常运行,在连接上数据库后在存储过程一项中新建存储过程然后把上面的粘贴进去运行,就提示上面的错误,请知道的高手帮一下  这怎么会事,在本地是执行正常的。
      

  5.   

    对象名'dbo.aspnet_AnyDataInTables'无效~~
    新建个
      

  6.   

    --下面的是修改,因为你在远程还没有创建,所以出错.
    ALTER PROCEDURE [dbo].[aspnet_AnyDataInTables]
    改为
    CREATE PROCEDURE [dbo].[aspnet_AnyDataInTables]
      

  7.   

    是把 ALTER PROCEDURE [dbo].[aspnet_AnyDataInTables]
    改为 CREATE PROCEDURE [dbo].[aspnet_AnyDataInTables] 然后运行一下  是不是就可以了
    运行后  还用不用把它改过来,谢谢楼上的朋以