Stored Procedures Written In 6.5 And Upgraded To SQL 7
Oct 22, 1998
I am beginning to write stored procedures for an application which is to be written in VB5. The stored procedures will be written in 6.5 but when the system goes live, we hope to upgrade to SQL server 7
What I want to know is what changes will I have to make to the stored procedures when I upgrade to 7.0?
How can I declare output parameter in stored procedure, written in C++/CLR? In C# it is proc_name( out SqlInt32 value ). In VB.NET it is proc_name( <Out()> ByRef value As SqlInt32 ). And in C++ ?
I have a problem with an existing stored procedure that is used to insert a new entry to a table (using an Insert statement).
I have been using the @@Identity global variable to return the identity column (id column) back to the calling routine. This has worked fine for years until recently an ‘after insert Trigger’ has been added to the table being updated.
Now the @@Identity is returning the identity value of the trigger that was called instead of the original table insert.
Does anyone know how I can code around this issue (without using a select statement within my stored proc, as these have been known to cause locks in the past).
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!!
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.
Using SQL 2005, SP2. All of a sudden, whenever I create any stored procedures in the master database, they get created as system stored procedures. Doesn't matter what I name them, and what they do.
For example, even this simple little guy:
CREATE PROCEDURE BOB
AS
PRINT 'BOB'
GO
Gets created as a system stored procedure.
Any ideas what would cause that and/or how to fix it?
How do I search for and print all stored procedure names in a particular database? I can use the following query to search and print out all table names in a database. I just need to figure out how to modify the code below to search for stored procedure names. Can anyone help me out? SELECT TABLE_SCHEMA + '.' + TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'
Seems like I'm stealing all the threads here, : But I need to learn :) I have a StoredProcedure that needs to return values that other StoredProcedures return.Rather than have my DataAccess layer access the DB multiple times, I would like to call One stored Procedure, and have that stored procedure call the others to get the information I need. I think this way would be more efficient than accessing the DB multiple times. One of my SP is:SELECT I.ItemDetailID, I.ItemDetailStatusID, I.ItemDetailTypeID, I.Archived, I.Expired, I.ExpireDate, I.Deleted, S.Name AS 'StatusName', S.ItemDetailStatusID, S.InProgress as 'StatusInProgress', S.Color AS 'StatusColor',T.[Name] AS 'TypeName', T.Prefix, T.Name AS 'ItemDetailTypeName', T.ItemDetailTypeID FROM [Item].ItemDetails I INNER JOIN Item.ItemDetailStatus S ON I.ItemDetailStatusID = S.ItemDetailStatusID INNER JOIN [Item].ItemDetailTypes T ON I.ItemDetailTypeID = T.ItemDetailTypeID However, I already have StoredProcedures that return the exact same data from the ItemDetailStatus table and ItemDetailTypes table.Would it be better to do it above, and have more code to change when a new column/field is added, or more checks, or do something like:(This is not propper SQL) SELECT I.ItemDetailID, I.ItemDetailStatusID, I.ItemDetailTypeID, I.Archived, I.Expired, I.ExpireDate, I.Deleted, EXEC [Item].ItemDetailStatusInfo I.ItemDetailStatusID, EXEC [Item].ItemDetailTypeInfo I.ItemDetailTypeID FROM [Item].ItemDetails IOr something like that... Any thoughts?
I have MSSQL 2005. On earlier versions of MSSQL saving a stored procedure wasn't a confusing action. However, every time I try to save my completed stored procedure (parsed successfully ) I'm prompted to save it as a query on the hard drive.
How do I cause the 'Save' action to add the new stored procedure to my database's list of stored procedures?
We recently upgraded to SQL Server 2005. We had several stored procedures in the master database and, rather than completely rewriting a lot of code, we just recreated these stored procedures in the new master database.
For some reason, some of these stored procedures are getting stored as "System Stored Procedures" rather than just as "Stored Procedures". Queries to sys.Objects and sys.Procedures shows that these procs are being saved with the is_ms_shipped field set to 1, even though they obviously were not shipped with the product.
I can't update the sys.Objects or sys.Procedures views in 2005.
What effect will this flag (is_ms_shipped = 1) have on my stored procedures?
Can I move these out of "System Stored Procedures" and into "Stored Procedures"?
I just upgraded SQL6.5 standard(Installed 7.0 and ran Wizard to upgrade dbs) to SQL7.0 by running the exe file.
It turned out that the MSSQL7 folder is follen on Drive C instead of Drive D which is what I wanted. When I was running the upgrade exe file, there was no prompt to ask me the right path.
How could I have the MSSQL7 folder installed on D drive?
We just upgraded SQL 6.5 to 7.0 --database was imported (thinking all table structure/ data all were imported.) Software application lost its login connection.
How can I re-establish the connection ? Thanks for your help !!
We recently upgraded from sql 2000 to sql server 2005. Our system was developed using Microsoft visual Basic. Since we upgraded to sql server 2005 our system has been very slow. I suspect that it was because of the new sql 2005 installation that i made. Does anyone know how to solve this problem for me to be able to increase the perfomance speeed of our system again. It has been stressing me for a while now.
Microsoft SQL Server Management Studio 9.00.1399.00 Microsoft Analysis Services Client Tools 2005.090.1399.00 Microsoft Data Access Components (MDAC) 2000.085.1117.00 (xpsp_sp2_rtm.040803-2158) Microsoft MSXML 2.6 3.0 4.0 5.0 6.0 Microsoft Internet Explorer 6.0.2900.2180 Microsoft .NET Framework 2.0.50727.832 Operating System 5.1.2600
My coworkers have a higher version 9.00.34xx or something.
I am trying to generate scripts w/ the "drop before create" function...
I did a same server upgrade from SQL 6.5 to 7.0 about a month ago. I never deleted the old 6.5 installation/databases. Yesterday, for some reason SQL 7.0 wouldn't start. When I looked at SQL 6.5 enterprise manager, it showed that 6.5 was started. So I stopped it. I tried to start 7.0 back up and it would just start 6.5. I tried a reboot... that didn't work. Then I uninstalled 6.5, rebooted, and SQL 7.0 finally came up. I check the error logs and it showed that there was a "short stack dump" (details below)
Would a "stack dump" have caused sql to revert back to 6.5?
Thanks,
LC
Dump thread - spid = 10, PSS = 0x3505b4b4, EC = 0x3505b664 Stack Dump being sent to e:MSSQL7logSQL00003.dmp ************************************************** ***************************** * * BEGIN STACK DUMP: * 03/13/00 15:07:33 spid 10 * * Input Buffer 66 bytes - * SELECT category FROM z_guarantees WHERE z_guarantees.code ='GGTD' * ************************************************** ***************************** ------------------------------------------------------------------------------- Short Stack Dump 0x77f67a2b Module(ntdll+7a2b) (ZwGetContextThread+b) 0x0077fc6b Module(sqlservr+37fc6b) (utassert_fail+1a0) 0x005b0ebe Module(sqlservr+1b0ebe) (XCB::Rollback+4a) 0x005aa843 Module(sqlservr+1aa843) (bds_defect_xact+84) 0x0051abea Module(sqlservr+11abea) (clean_process+200) 0x005b22fd Module(sqlservr+1b22fd) (language_exec+5f9) 0x4106135c Module(opends60+135c) (execute_event+659) 0x4106164b Module(opends60+164b) (process_commands+f3) 0x4109285a Module(ums+285a) (ProcessWorkRequests+ed) 0x41092d28 Module(ums+2d28) (ThreadStartRoutine+139) 0x7800bee4 Module(MSVCRT+bee4) (beginthread+ce) 0x77f04ee8 Module(KERNEL32+4ee8) (lstrcmpiW+be) 2000-03-13 15:07:34.09 spid10 CImageHelper::GetSym Error - The specified module could not be found.
While a database upgrade schema changes were being made the Mirror became disconnected will this recover itself when it reconnects or will it be the case that we will have to copy the db files to the Mirror and set it up from scratch.
I am writing a set of store procedures (around 30), most of them require the same basic logic to get an ID, I was thinking to add this logic into an stored procedure.
The question is: Would calling an stored procedure from within an stored procedure affect performance? I mean, would it need to create a separate db connection? am I better off copying and pasting the logic into all the store procedures (in terms of performance)?
Hi all - I'm trying to optimized my stored procedures to be a bit easier to maintain, and am sure this is possible, not am very unclear on the syntax to doing this correctly. For example, I have a simple stored procedure that takes a string as a parameter, and returns its resolved index that corresponds to a record in my database. ie exec dbo.DeriveStatusID 'Created' returns an int value as 1 (performed by "SELECT statusID FROM statusList WHERE statusName= 'Created') but I also have a second stored procedure that needs to make reference to this procedure first, in order to resolve an id - ie: exec dbo.AddProduct_Insert 'widget1' which currently performs:SET @statusID = (SELECT statusID FROM statusList WHERE statusName='Created')INSERT INTO Products (productname, statusID) VALUES (''widget1', @statusID) I want to simply the insert to perform (in one sproc): SET @statusID = EXEC deriveStatusID ('Created')INSERT INTO Products (productname, statusID) VALUES (''widget1', @statusID) This works fine if I call this stored procedure in code first, then pass it to the second stored procedure, but NOT if it is reference in the second stored procedure directly (I end up with an empty value for @statusID in this example). My actual "Insert" stored procedures are far more complicated, but I am working towards lightening the business logic in my application ( it shouldn't have to pre-vet the data prior to executing a valid insert). Hopefully this makes some sense - it doesn't seem right to me that this is impossible, and am fairly sure I'm just missing some simple syntax - can anyone assist?
I just did a 2005 "In-Place" upgrade to a 2000 server yesterday, and now we're getting intermittant time-out errors trying to connect via SQL Server Management Studio. Sometimes we connect instantly, then if I try again 10 minutes later, it might time-out. No problems with our other 4 SQL 2005 servers (2 were just upgraded, 2 are native 2005). No timeouts so far when logged on to the server directly, just when logging in from our desks.
It's set to TCPIP only (removed named pipes), but can't think what else might be the problem. Any ideas ?
One little thing I just noticed while comparing to another server: In the console, a "good" server has the little green arrow on the server & SQL Agent icons, while the "problem" server is connected, but there is no green arrow. If I log on the server directly and open SQL, I get the green arrows. Is that trying to tell me something about the connection ??
Database 'C:INETPUBDEMO.TRUTHSTONE.COMAPP_DATAASPNETDB.MDF' cannot be upgraded because it is read-only or has read-only files. Make the database or files writeable, and rerun recovery.Cannot open user default database. Login failed.Login failed for user 'NT AUTHORITYNETWORK SERVICE'. Hi, Strange one. I have copied my working web-site to the production server and get this message. Tried copying new set of database files and reset the server to ensure no applications could be accessing the database files. Still get the same error. Works fine on my Visual Studio VWD Express version.
Mitch PS I am not trying to upgrade the database, just use it!
I am trying to save a newly created diagram in SQL Server 2005 SP1.
The error message is: ----Beginning of pasted error message---
===================================
Cannot insert the value NULL into column 'diagram_id', table 'adt_db.dbo.sysdiagrams'; column does not allow nulls. INSERT fails. The statement has been terminated. The 'sp_creatediagram' procedure attempted to return a status of NULL, which is not allowed. A status of 0 will be returned instead. (.Net SqlClient Data Provider)
------------------------------ Program Location:
at Microsoft.VisualStudio.DataTools.Interop.IDTDocTool.Save(Object dsRef, String path, Boolean okToOverwrite) at Microsoft.SqlServer.Management.UI.VSIntegration.Editors.DatabaseDesignerNode.Save(VSSAVEFLAGS dwSave, String strSilentSaveAsName, IVsUIShell pIVsUIShell, IntPtr punkDocDataIntPtr, String& strMkDocumentNew, Int32& pfCanceled)
----End of pasted error message---
The database I use has been upgraded from SQL Server 2000.
I am running in SQL Server 2000 Compatibility Mode (80) but changing the compatibility mode to SQL Server 2050 (90) does not make any difference with regards to this error.
I upgraded my XP and when attempting to restart my web site using MSSQL 2005 my login credentials were not recognised. Now, the Databse does not want to start and I can not login to check error logs. I have enclosed the error message that I am experiencing.
Can anybody please help.
Regards
===================================
Testing the registered server failed. Verify the server name, login credentials, and database, and then click Test again.
===================================
An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Shared Memory Provider, error: 40 - Could not open a connection to SQL Server) (.Net SqlClient Data Provider)
------------------------------ For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=2&LinkId=20476
I'm having a database insertion problem. I make an entry to my registration form, write it to the database; then the next registration entry displays an error that the same UID can't be written to the database. I don't know where to start tracing this, but here is the stored procedure I use and some of the code that might generate it. @UserName nvarchar(128), @Email nvarchar(50), @FirstName nvarchar(25), @LastName nvarchar(50), @Teacher nvarchar(25), @GradYr int DECLARE @UserID uniqueidentifier SELECT @UserID = NULL SELECT @UserID = UserId FROM dbo.aspnet_Users WHERE LOWER(@UserName) = LoweredUserName INSERT INTO [table name](UserID,UserName,Email,FirstName,LastName,Teacher,GradYr) VALUES (@UserID,@UserName,@Email,@FirstName,@LastName,@Teacher,@GradYr) Protected Sub cuwCreateUserWizard1_CreatingUser(ByVal sender As Object, ByVal e As System.EventArgs) Handles cuwCreateUserWizard1.CreatedUser strEmail = CType(cuwCreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("Email"), TextBox).Text strUserName = CType(cuwCreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("UserName"), TextBox).Text.ToLower strFirstName = CType(cuwCreateUserWizard1.CreateUserStep.CustomNavigationTemplateContainer.FindControl("txtFirstName"), TextBox).Text strLastName = CType(cuwCreateUserWizard1.CreateUserStep.CustomNavigationTemplateContainer.FindControl("txtLastName"), TextBox).Text lngGradYr = CType(cuwCreateUserWizard1.CreateUserStep.CustomNavigationTemplateContainer.FindControl("txtGradYr"), TextBox).Text strTeacher = CType(cuwCreateUserWizard1.CreateUserStep.CustomNavigationTemplateContainer.FindControl("txtTeacher"), TextBox).Text End Sub Protected Sub cuwCreateUserWizard1_CreatedUser(ByVal sender As Object, ByVal e As System.EventArgs) Handles cuwCreateUserWizard1.CreatedUser Dim cmd As New SqlCommand("sp_CreateUser", con) cmd.CommandType = Data.CommandType.StoredProcedure cmd.Parameters.AddWithValue("@UserName", strUserName) cmd.Parameters.AddWithValue("@Email", strEmail) cmd.Parameters.AddWithValue("@FirstName", strFirstName) cmd.Parameters.AddWithValue("@LastName", strLastName) cmd.Parameters.AddWithValue("@Teacher", strTeacher) cmd.Parameters.AddWithValue("@GradYr", lngGradYr) Using con con.Open() cmd.ExecuteScalar() con.Close() End Using cmd.Equals(Nothing) End Sub Please let me know if any other info is needed to help determine what's wrong.
I have a DB with 4 tables in MSSQL6.5. In those tables write an NT service (4 threads for each table) 24h/day. I want to know somehow when i have no write in one of those tables for more than 1-2 hours (i dont want to querry those tables everytimes). MSSQL6.5 offer this kind of facilities? Or I can do this using stored procedures or something else?
I am very new to SQL server and I'm using stored procedures for my program. So far I wrote one tonight, that works just fine. I haven't really written one before, but its kind of similar syntax since I know C++/C# and VB. My question is, even though this works for what I need it do, is it written correctly? Can you see any problems with it, or would you have done it differently? I want to make sure its done correctly, and it runs as fast as possible. Thanks! [pre] CREATE PROCEDURE CreateNewUser @UserID int out, @LoginID nvarchar(30), @Password nvarchar(30), @RegisterDate smalldatetime, @LoginIDExists nvarchar(30)AS /* Check to see if the loginID is already in use before attempting to save it. We MUST have a unique loginID for each user */ SELECT @LoginIDExists = loginID FROM users WHERE loginID = @LoginID /* If we pulled a value from the database, then the loginID already exists, return with error code 1 */ IF (@LoginIDExists = @LoginID) BEGIN SELECT 1 RETURN END ELSE BEGIN /* The loginID does not already exist, attemp to add the new user to the database. */ INSERT INTO users ( loginID, loginpassword, registerDate ) VALUES ( @LoginID, @Password, @RegisterDate ) /* Grab the UserID for the new user. */ SELECT @UserID = @@identity /* return with error code 0 */ SELECT 0 RETURN ENDGO [/pre]
I'm wondering if anyone has a written project plan for upgrading a server to 7.0 from 6.5. I'm looking to make this upgrade myself shortly. I would appreciate any dialog, or a written working plan. Thanks,
Mark Blackburn o `"._ _ M onterey mark@mbari.org o / _ |||;._/ ) B ay Science at its Best! ~ _/@ @ /// ( ~ A quarium (831) 775-1880 ( (`__, ,`| R esearch http://www.mbari.org/ '.\_/ |\_.' I nstitute
Database Administrator MBARI Personal Web Page: http://www.mbari.org/~mark/
I have a transaction table which has Date as datetime field, amount and account number. i want to find out count of checks that were written in a period of 4 days which exceeded i.e. > $400, between 401 and 500, > 501 for a single month. the table has data for more than a year and i want the results then grouped in monthly format like in OCT between 300 & 400 #30 (30 customers gave checks total worth $300-$400 within any 4 consecutive days period in the month of OCT ) between 400 & 500 # 20 > 501 # 10
NOV between 300 & 400 #30 between 400 & 500 # 20 > 501 # 10
I've a table with a nvarchar(max) column on Filegroup2. While inserting a lot of big datas (Word documents, each 2.5MB), the primary filegroup is growing - but the Filegroup2 remains still on its creation size.
Is that a bug? By the way, i ve dropped the table and recreated on the other filegroup, after that i've restartet the SQL 2005 Service.