When I create a stored procedure like the one below and save it,
everything seems fine. But when I close Enterprise Manager and
re-open it, the stored procedure is gone.
Any ideas?
SET ANSI_DEFAULTS ON
GO
CREATE PROCEDURE [dbo].[sp_Test] AS
SELECT * FROM OPENQUERY(LINKEDSERVER, 'SELECT V.VENDOR_ID,
V.VENDOR_NAME FROM VENDOR V')
GO
I've been trying to copy tables from a linked server to a SQL ServerExpress database. Express seems to have no direct/automatic way to doit, so I've been looking into doing this by hand (i.e., with a T-SQLprocedure).I've discovered some system stored procedures that seem relevant (likesp_tables_ex and sp_columns_ex). But they're procedures, nottable-valued functions, so I'm not sure if I can actually do anythingwith the data they return.If I could get to the data, I thought maybe I could use a cusor and awhile loop to recreate the tables in Express.Is this crazy?Really could use some advice on this.Thanks,-Dan
I want to know the differences between SQL Server 2000 storedprocedures and oracle stored procedures? Do they have differentsyntax? The concept should be the same that the stored proceduresexecute in the database server with better performance?Please advise good references for Oracle stored procedures also.thanks!!
I created a simple stored procedure shown below. It works wonderfully. The only problem is that it likes to disappear on me. I am accessing it through a VB.Net program. The system will work fine throughout the day and suddenly it will be gone. I can exit Sql Server Management Studio and come back in and it will still be there so that is not causing it. The database stays connected all the time.
Any suggestions?
Code Snippet IF EXISTS( SELECT * FROM sys.procedures WHERE name = N'VerifyPart' ) DROP procedure VerifyPart; --create a procedure for the part code tab verify part function go create procedure VerifyPart ( @PartNumber varchar(50) = null, @LastUpdated varchar(30) = null ) as --Update Part Number update Parts set LastUpdated = @LastUpdated where PartNumber = @PartNumber
I'm executing a stored procedure from an Execute SQL Task in my SSIS package. The procedure takes two input variables and creates and executes an SQL statement based on those variables. I don't have it set to return anything.
When I run the package in debug mode on my desktop, it runs just fine.
However, when I save it to the RDBMS and execute it as a step in a job, the stored procedure errors out because it doesn't receive the input parameters. If I replace the ? in the statement with the value I know the parm should have, it executes just fine. The parms are mapped to the 0 (and, where applicable, 1) input parms.
As an aside, the package variable supplying the value is a byte value. However, in the parm mapping for the step, I define it as varchar because that's what the stored procedure is expecting. Could this be goofing me up?
hi i have 100 of stored procedures and many has linked servers in my database. and now i need to know how many storedprocedures are using particular linked server . plz advice to do this
The problem i am facing here is disappearing data in sql server 2000. I not sure what is the problem, but it is getting worse and worse. Anyone can point me to a right direction whether this is a security vulnerability which i need to download the patch, or is it my computer is infected with virus., or is it a bug in sql server?
I remember having read somewhere about this problem also, but not sure in which website already. Anyone, please help!!! Because we are going to deploy to production server soon, and this is a problem that need to be solve ASAP..
We have a number of databases on our SQL Server 2005. One of them, AddressPoint, keeps disappearing completely every few days. I should qualify that - the database name still exists and is visible in Management Studio, but there is no + icon to expand to see the object types.
I can manually restore the database. But we are unable to identify any process that might be deleting the database.
So where do I even start in trying to track down the process that is deleting it? I have not been able to pinpoint a specific time when the deletion might have occurred, as I am not using the database regularly, and neither are our users, yet. The latest deletion definitely occurred within the last 24 hours, but that's as specific as I can be.
This Might be a really simple thing, however we have just installed SQL server 2005 on a new server, and are having difficulties with the set up of the Store Procedures. Every time we try to modify an existing stored procedure it attempts to save it as an SQL file, unlike in 2000 where it saved it as part of the database itself.
IS there a way inside code for vb.net to programmatically change sorting in a stored procedure???Reason is I need a two way sort and did not want to have to write a SP for each way ....If so Do you have an example.....
Everytime after I restore any database on the sql server 6.5, I have to recompile all the stored procedures in that database.Is there any method to overcome this problem?
Trying to run a SQL Server 6.5 stored procedure via ADO 2.0 in Visual Basic 6. The stored procedure moves roughly 10000 records from one table to another within the same database. The procedure works just fine when run from a SQL editor such as I/SQL, but only transfers a few hundred records when it is executed from a VB application using ADO 2.0. The guilty code can be seen below. Any thoughts?
Public cnSQL As New ADODB.Connection Public qry As New ADODB.Command
With cnSQL .ConnectionString = ConnectStringSQL .ConnectionTimeout = 20 .Open End With
Set qry.ActiveConnection = cnSQL qry.CommandType = adCmdStoredProc qry.CommandTimeout = 120
I have a stored procedure on SQL/Server 2000 that inserts into a #temptable. When I execute it from Query Analyzer it works fine. When I execute it from an ASP using ADO it gives me an Open Error message. When I comment out the #temptable the ASP works fine. Can someone shed some light on this? Do I have to do an ADO opent on the #temptable?
I come from a MySQL background, and have recently began migrating to SQL Server.
I can't, for the life of me, find an example of a stored procedure that does the following in SQL Server: - Multi-lined - Contains both input and output parameters - Sets one of the output parameters within the stored procedure
Can anyone provide some insight? I.e. Why does the following not work?
IF NOT EXISTS (SELECT * FROM syscomments WHERE id = object_id('usp_test')) BEGIN CREATE PROCEDURE "usp_test" (@num1 INT, @num2 INT, @result INT OUTPUT) AS BEGIN DECLARE newValue INT; SET @newValue = num1 + num2; SET @result = @newValue; END; END;
I get these errors (I'm using the Management Studio Express)
Msg 156, Level 15, State 1, Line 3 Incorrect syntax near the keyword 'PROCEDURE'. Msg 155, Level 15, State 2, Line 7 'INT' is not a recognized CURSOR option. Msg 137, Level 15, State 1, Line 8 Must declare the scalar variable "@newValue". Msg 137, Level 15, State 2, Line 9 Must declare the scalar variable "@newValue".
I have an Alwayson group with 2 Nodes. The SQL Performance counters are always showing on the secondary, but the primary is inconsistent.
I loaded the counters on the primary (unlodctr and lodctr ), restarted the SQL service, and confirmed that the counters were there. 2 days later the counters were gone again. I loaded them again. A week later we had maintenance, failed over to the secondary, and when we failed back to the primary - the counters were gone again….
I just installed sql server 2005 on my machine. I've been using Access for some time and have created my stored procedures easily in it. However, this sql server 2005 is so complicated. In Access, all I had to do was "Create a New Query", write my sql statement, name and save it. However, I am having so much trouble with this sql server. For example, when I create a stored procedure in sql server, it has a .sql extension. I am assuming the stored procedure is a file. However, after saving it, I expand my database, expand programmability, and expand stored procedures, yet my new stored procedure is not there. It's placed in a file called projects. I need to access this stored procedure from code, but in visual studio, I get an error message, "Cannot find stored procedure sp_Roster". Here is the code I used to access my stored procedure from vb.net. I thought it would work but it didntDim comm As New SqlCommandDim strsql As StringDim strconn As String strsql = "sp_Roster" strconn = "server=Home; user=sa; pwd=juwar74; database=Book;" With comm .Connection = New SqlConnection(strconn) .CommandText = strsql .CommandType = CommandType.StoredProcedure With .Parameters.Add("TeacherID", SqlDbType.Char) .Value = "DawsMark@aol.com" End With With .Parameters.Add("ClassID", SqlDbType.Int) .Value = CInt(classid) End With With .Parameters.Add("sID", SqlDbType.Int) .Value = ssID End With With .Parameters.Add("sLastName", SqlDbType.Char) .Value = lastname End With With .Parameters.Add("sFirstName", SqlDbType.Char) .Value = firstname End With With .Parameters.Add("sMiddleName", SqlDbType.Char) .Value = middlename End With With .Parameters.Add("Student", SqlDbType.Char) .Value = fullname End With With .Parameters.Add("Password", SqlDbType.Char) .Value = password End With .Connection.Open() .ExecuteNonQuery() With comm.Connection If .State = ConnectionState.Open Then .Close() End If End With End With Here is my procedure that I created and that was saved as sp_Roster.sql in sql server CREATE PROCEDURE sp_Roster ASBEGIN SET NOCOUNT ON; -- Insert statements for procedure here INSERT INTO Roster (TeacherID, ClassID, sID, sLastName, sFirstName, sMiddleName, Student, Password) VALUES (@TeacherID, @ClassID, @sID, @sLastName, @sFirstName, @sMiddleName, @Student, @Password)ENDGO Why isn't ado.net finding it in sql server. Is the sqlstr correct?
In a previous post, someone helped me with creating stored procedures, and I am grateful because I am transitioning from the Access World. Anyway, I get an error at .ExecuteNonQuery in visual studio 2005 when I run the following code: Dim strsql As String Dim strconn As String strsql = "sp_Roster" strconn = "server=xxxx; user=xxxx; pwd=xxxx; database=xxxx;" With comm .Connection = New SqlConnection(strconn) .CommandText = strsql .CommandType = CommandType.StoredProcedure With .Parameters.Add("TeacherID", SqlDbType.Char) .Value = "DawsMark@aol.com" End With With .Parameters.Add("ClassID", SqlDbType.Int) .Value = classid End With With .Parameters.Add("sID", SqlDbType.Int) .Value = ssID End With With .Parameters.Add("sLastName", SqlDbType.Char) .Value = lastname End With With .Parameters.Add("sFirstName", SqlDbType.Char) .Value = firstname End With With .Parameters.Add("sMiddleName", SqlDbType.Char) .Value = middlename End With With .Parameters.Add("Student", SqlDbType.Char) .Value = fullname End With With .Parameters.Add("Password", SqlDbType.Char) .Value = password End With .Connection.Open() .ExecuteNonQuery() With comm.Connection If .State = ConnectionState.Open Then .Close() End If End With End With The error was: Error converting data type char to int. The stored procedure in sql server was as follows CREATE PROCEDURE sp_Roster -- Add the parameters for the stored procedure here@TeacherID varchar(50),@ClassID int,@sID int,@sLastName varchar(50),@sFirstName varchar(50),@sMiddleName varchar(50),@Student varchar(50),@Password varchar(50)ASBEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for procedure here INSERT INTO Roster (TeacherID, ClassID, sID, sLastName, sFirstName, sMiddleName, Student, Password) VALUES (@TeacherID, @ClassID, @sID, @sLastName, @sFirstName, @sMiddleName, @Student, @Password)ENDGO The error also says "sqlexception was unhandled by user code. This is strange because this code worked perfectly when connecting to Access and when I used oledb. So how is it the code's problem? Is the stored procedure causing the error or the code. Can someone please help. thanks. <Edited by Dinakar Nethi> Please mask your useird/pwd info in the connection string when posting to a public forum like this </Edit>
In Oracle database we can group our stored procedures in packets. It is very useful when we are creating big business solutions with hundreds stored procedures. Can we do something like this in SQL server?
I don't see the option to debug a stored procedure. I right click on the procedure and should'nt it appear in the properties window. Do I need to install some extra component to get the debugger.
How do you transfer stored procedures from SQL Express 2005 to MS SQL 200 ? I am using the Personal home page starter kit and also need to know if I have to attach and detach the database to my ISP's server?thanks,
About a year ago we inherited a SQL server (7.0) from another division of our company. The time has come to migrate the SQL Server functionality onto a new machine. Before I do this though, I need to figure out what the initial installation configuration was so I can set up the new server with the same specs. I am looking for a system stored procedure(s) that can tell me the following:
Case sensitivity, accent sensitivity, SQL build (SP), character set, etc. Basically I need to know what checkboxes were ticked during the initial set up of the server.
I thought this problem would go away over the Christmas holiday, butof course it did not. I'm trying to write a stored procedureincorporating wildcards, so I can search for variations. Example, ifname 'Smith' is submitted, sproc should retrieve all recordscontaining 'John Smith', 'Zenia Smith', 'Smithfield & Co.' You get theidea.Using SQL Query Analyzer, the queryselect * from filewhere name like '%smith%'works like a charm.But if I write a stored procedure declaring the variable @name andusing a where clause 'where name like '%@name%'', I get zero results.The query doesn't bomb. It just doesn't produce anything - even thoughI know there are records that meet the criteria.Any ideas? Or are sprocs and wildcards incompatible?
SqlParameter param2 = new SqlParameter("@mult2", SqlDbType.Int);
param2.Value = 6;
SqlParameter param1 = new SqlParameter("@mult1", SqlDbType.Int);
param1.Value = 5;
SqlParameter param3 = new SqlParameter("@result", SqlDbType.Int);
param3.Direction = ParameterDirection.Output;
m_cmd.CommandType = CommandType.StoredProcedure;
m_cmd.Parameters.Add(param1);
m_cmd.Parameters.Add(param2);
m_cmd.Parameters.Add(param3);
m_cmd.ExecuteNonQuery();
This works and param3.Value holds the result value. I also notice that I can supply the parameters in any order, and things work fine.
What I want to know is: can I call the stored procedure with parameters, where I haven't supplied the parameter name, and just rely on the parameter order matching instead?
This is a solution for a very specific problem, and it's one that you'll hardly ever use, but it's important to know about that one scenario where it can save your neck. Ordinarily, stored procedures are only recompiled if they're no longer in the procedure cache. But if a stored procedure's execution plan is still in the cache, then SQL Server reuses the compiled storedprocedure and its existing execution plan. This is almost always the best course of action. Almost always, but not always.Sometimes, however, reusing an existing plan doesn't offer the most efficient performance. Imagine, for example, that your stored procedure accepts a parameter that determines the natureof a JOIN operation. The results can vary in a big way, so you wouldn't want your procedure to be locked into an execution plan that might be completely inappropriate for that JOIN. In a highlyspecialized case like this, you might want to force SQL Server to recompile the procedure every time the procedure runs. Doing so comes at a performance cost, but this might be offset by thesavings you gain in not executing the procedure with an awful compiled execution plan. Consider carefully whether to use this approach (or whether to re-engineer the over-design of yourapplication to avoid this situation in the first place). Should you need to instruct SQL Server to recompile each time, add the WITH RECOMPILE directive to the procedure, like this: CREATE PROCEDURE ProcName @Param int /* ... other parameters */ WITH RECOMPILE AS /* ... procedure code follows */ If we omit "WITH RECOMPILE", what will be the consequence? Thanks
Stupid question but please be gentle and answer anyway please....
Background: We have SQL Server 2003 (32bit) running on our servers. Our .Net applications (from old release of VS) are still running on them and using the old databases. From what I understand there is no immediate plans to upgrade the servers. However the developers were just given this new upgrade (2005) SQL Server and VS (and fixing depreciated code etc in the .net apps).
Question: Can the applications and new stored procedures written via the 2005 environment be deployed successfully on the 2003 Servers? Same goes with Reporting Services?
This question is about SQL Server 2005: I have been trying to figure out how to copy tables and stored procedures between 2 databases (on the same server) using SQL Server Management Studio. I have tried right clicking on the table name, "script table as", "drop to", "clipboard", then I click on the 2nd database, and then click on the "tables" . I change the name of the database and click "execute". This creates the table but does not copy the data. I have also tried "create to" "clipboard" and "insert to" "clipboard" and cannot seem to be able to figure out how to get the results that I want. I am new at this but need to get the tables with the data copied along with the stored procedures, even if I have to do them one at a time. When I was using SQL Server 2000, I was able to use DTS to copy objects to other databases easily. Can someone please tell me a way to accomplish what I need to do? I have gotten information here before that was very useful and was hoping that someone can help me again.Thank you so much. Carol Quinn