2012-03-07 60 views
0

每次创建存储过程时,它都默认为“主”数据库。如何制作特定于数据库“上传”的SP?创建特定于数据库的SP?

CREATE PROCEDURE testInsert2 
AS 
INSERT INTO [uploads].dbo.[aspnet_uploads] 
(userID, fileName, userName) 
VALUES 
('Test1', 'Test2', 'Test3') 
+0

在代码中引用数据库被认为是不好的做法(sp,functions);在你的情况下,它是'[上传] .'部分。 – 2012-03-07 22:06:03

+0

@Denis我一般同意这一点,当然它总是依赖,但是这使得使用不同名称复制数据库非常困难以隔离测试等。现在,所有的过程仍然引用主副本。 .. – 2012-03-07 22:30:06

回答

3

您需要在该数据库的上下文中。

USE uploads; 
GO 
CREATE PROCEDURE dbo.testInsert2 
AS 
BEGIN 
    SET NOCOUNT ON; 

    INSERT dbo.[aspnet_uploads](userID, fileName, userName) 
     VALUES('Test1', 'Test2', 'Test3'); 
END 
GO 
0

当你重新连接它发生的服务器。您可以尝试像这样

USE [database_name] 
GO 
Create Procedure [procedure_name] 
AS