Hy! I am a beginner in SQLServer and I have to design a database with a lot of tables (30-50 tables). I have to choose a primary key for every table between an autoincrement and a GUID. If I choose autoincrement after an insert statement (from the client) I will have to go back to the server to get the value of the primary key which is a waste of time. On the other hand if I choose a GUID I can create the guid from the client and send him with the other values of the new row to the server and I have not to go back to the server. I am aware of the disk space of a guid field so which is the best for me: GUID or AUTOINCREMENT? Thank you!
Im still learning my way around SQL and queries and i was wondering : How do you get a SQL Table to autoincrement a Guid? (is it "Is Identity?" or "RowGuid"....) How would i create a new row with a new Guid, and insert into the values i want without specifying the Guid?
I have a table in my sqlserver 2000 that has a field IDNO. i want thisfield to be my primary key. however i don't want this field to use theautoincrement feature. when i access this table from vb.net and try toadd a record this field is autoincrementing. how can i disable theautoincrement of this field yet serves this as my primary key?thanks in advance
What I need to achieve is - everytime that a new line is inserted into an orderlines table part of the primary key will be the OrderId and the OrderLineId should be auto-incremented from 1 for each OrderId in the OrderLines table.
I know i can do this manually in my program, but i'm just wondering if theres a way to achive this in SQL Server?
In SQL Server 2000, I'm looking for input as to how to set up primary keys (PKs).
Is it safe to use the IDENTITY feature using AUTOINCREMENT as a setting for a PK, or is it best to generate my own and check for dups?
My concern is whether SQL Server at any point will taint the numbers used as the PK -- because as you know, these PKs are going to wind up linking into (relating into) other tables (e.g. client orders).
Certainly it's vital that the clientID not get lost/changed during any regular DB maintenance or use.
<BACKGROUND INFO> We are in the database design stage of creating a db and we plan to use a GUID as the primary key for our tables (the app will be a smart client and will need to support offline functionality so when the app comes back online and the queued up inserts come thru we want to ensure that the primary keys are unique). We plan to have the app generate the guid and to send the GUID over as a parameter i.e.
<code>GUID myPrimaryKey = GUID.NewID(); </code>
and will not be using the DEFAULT NEWID clause on the CREATE TABLE statements. </BACKGROUND INFO>
<QUESTION > Is it better to make the data type for the primary key columns to be uniqueidentifier or should the datatype be varchar(36).</QUESTION>
I only ask this because the tables have already been created with the primary key columns having a datatype of varchar(36) and changing them would be a little bit of work. Not a big deal but don't want to do it if we don't have to. If its really advantageous we will go ahead and do it but if not we would like to leave it as is. Thanks for your thoughts!
Ok, so I've broken down and decided to write myself an invoicing program. I'd like to use GUID fields as the Primary Keys in my table. Now, I basicly bill for two seperate items:
Deliverables and Services.
So, my Layout's gonna look something like
Create Table Invoice( ID UniqueIdentifier Primary Key, -- Other Data );
Create Deliverable( ID uniqueidentifier Primary Key, ParentInvoice uniqueidentifier, -- Other data); --...
Im sure there are probems with that as it's written feel free to edify me as to what they are.
my questions are such:
1) Does a uniqueidentifier field automagically get a value? 2) If not how do I generate one in TSQL? 3) If so, what do I use to store my Foreign Keys. 4) How do I declare my Foreign key constraints?
How do I update the OrderGUID column in Table B with Values from OrderGUID column in Table A. I have already populated the OrderGUID column in Table A using NEWSEQUENTIALID(). Now I need to populate the OrderGUID column in Table B with Matching GUID values from the OrderGUID Column in Table A.
Does any one have a script to accomplish this task. thanks
i have a table for storing username and password. the following are the fields in table ID -int UserName-nvarchar(50) Password-nvarchar(50)
i dont want to have a separate field for id i want to autincrement them plz give me an idea am using SQLServer Express am new to this field so plz forgive me for this simple question
Hi All I am using SQL server Database in one of my table there is a column which is set to Identity=Yes i.e., The ID is increment by one on every insert and if the insertion failed then the id generated goes off then in the next generation it uses new id ..........EXfirst insertion id=1 then in the second insertion if while adding data to other rows if i get some error then the id 2 is not used and when i correct the error and insert it then id=3? can any one give me the solution for this and NextWhen i delete the datafrom the table see the ids are upto 20 and i delete all the records from the table after insertion of new record the id will be 21plese help me in this
This may sound quite easy for you, however I am a newbie in SQL.
So I have an identity field, which I wish to increment automatically every time I do an insert. However the starting integer has to be the MAX value from another table.
So for example I am doing an insert in a #temp table INSERT INTO #temp(name, surname) SELECT name, surname from table1
Now the personId of the #temp table has to start from the MAX of table2 Ie SELECT MAX(personId) from table2
The SELECT MAX(personId) from table2 can also be NULL, ie the first time I am inserting, so I also have to cater for this scenario.
Hi all, i am deleting rows of a table and reinserting new ones. This table has an auto increment primary key. what is the function used to set it to zero each time i delete the rows in order to rebegin counting from 1 when i refill the table. Thanks in advance...
I created a new table in sql server 2005. Primary key is autoincrement value of 1. But when I insert the row, it increments by 4. It goes like 1, 5, 9 etc..what could be the problem ?how can I correct it? Do I need to reseed it? Thanks!!
looking for necessary syntax to alter table id to autoincrement adding identity statement, not sure on syntax for seed an increment, or if it is possible at all.
I noticed in SQL ODBC API reference that SQLGetTypeInfo would return true for AUTO_INCREMENT if a smallint field is defined as autoincrement. Is there a simple way to set a field autoincrement thru the SQL Server`s front end?
I have 2 tables: 1. CommandCode( id AutoIncrement_integer, name string ) 2. FooCode( FooID integer, CommandCodeID integer)
I have the following stored procedure
PROCEDURE InsertRows( CodeName VARCHAR ) INSERT INTO CommandCode ( name ) VALUES (CodeName)
Now right here I need to INSERT INTO the "FooCode" table using the same ID that was just added to the CommandCode table. How can I retrieve the last inserted autoincrement value for "id" in the CommandTable without doing SELECT id FROM CommandCode WHERE name = CodeName
END PROCEDURE
Is there an easy way to do what I described above? If possible I want it to comply with SQL standards (e.g. no MS SQL specific code)
Hi all! Does anyone knows how to get if a column is autoincrement or not, using the DatabaseMetaData in java, or using de JTurbo driver for it? Is there any other way to figure this out? :confused:
I am creating a trigger in SQL Server that will activate when my Athelete table has something "Inserted"
So far it works except for the fact that it won't insert a null into the Equipment_ID field. I need it to autoincrement, or do the last number + 1...
CREATE TRIGGER TRG_NEW_EQUIPMENT1 ON ATHLETE AFTER INSERT AS BEGIN INSERT INTO Equipment Equipment_ID, Equipment_Model, Equipment_Year, Equipment_Brand, Equipment_Color, Equipment_Condition_Rating) VALUES ('Big Spin','2016','K2','Blue','5') END; GO
Hi,I'm enclosed a snippet of test code which highlights my problem. The Storedprocedure insertValue should insert text into the parent, then insert othertext into the child table but the 2 tables should auto increment in sync(i.e. so that they both end up with the same id numbers). I've tried takingthe auto increment out of the child table but then I don't know how to getthe right parent id into the child table.Any advice appreciated - this is my first database, so I'm just in thelearning process really. Code follows:CREATE TABLE Parent(id INTEGER DEFAULT AUTOINCREMENT,parenttext VARCHAR(16),PRIMARY KEY (id))!CREATE TABLE Child(childID INTEGER INTEGER DEFAULT AUTOINCREMENT,childtext VARCHAR(16),FOREIGN KEY (childid) REFERENCES Parent(id),PRIMARY KEY (childID))!CREATE PROCEDURE insertValues(in p VARCHAR(16), in c VARCHAR(16))BEGINinsert into parent (parenttext) values (p);insert into child (childtext) values (c);END!call insertValues('from parent', 'from child')!select * from parent, child where parent.id = child.childid!
I use Microsoft SQL Server and also I have several tables. One table has ID like PK, and name. ID use autoincrement number mode, and now when I want start form one but not from 156 or like that. I don't know how? And also when I delete all data from table an run my apllication and add something in table, it starts form last number, not from one.
Hi, im trying to insert values into 2 different tables. The primary key in the first table is an auto increment field, which is then the foreign key in the 2nd table.Is there any way to retrieve the autogenerated value before performing the second insert. I have done some searching on the matter, but to no avail.I tried using LAST_INSERT_ID() but i get the error message that it is not a recognized function name. The other option is using @@identity but i cant see how to put that into my SQL statement.Can anyone help please.Thanks in advanceGareth
I'm getting reports of a strange problem with an ASP.NET application I've written. I've checked the database tables and the problem is definately a strange one, and one I've yet to pin down or even recreate.On this system, clients can type in their details through a .NET 2.0 wizard. At the end of the wizard their data is stored on the database using several linked tables. It's always worked for me and my client, but now when their clients are using it, some of the data is missing. The problem, however, is that I can't see how it can just disappear and was wondering if someone could shed some light on SQL.There are two tables that are baffling me. Their structure is like this:Table 1id - autoincrement columnnameaddressetc ...Table 2id - autoincrement columncontactDetailsetc ...The contactDetails column on table 2 is taken from the id column of table 1. When a new record is added to table 1, it obviously increments the id for the new row, then it takes this id (using scope_identity()) and writes it to the contactDetails column of table 2 when a new row is added to that table. All straightforward enough.However, for some reason, some of the new rows in table 1 are missing and yet, the contactDetails column of table 2 contains the ids of those missing rows. How is that even possible? Can there be situations where MSSQL 2000 will generate/return an id even when it has failed to write to the database?
I want to access sqlserver table properties from asp.net .How do i know that a table defined in sqlserver has autoincrement field or not.Actually i have to access all the tables in a database and execute different function for table with auto increment on and off. I am not being able identify this property from codes.Please help.thank you
Hi, I have a table (Table1) with an autoincrement column (sql server 2005) and in my asp .net code (c#) the user can delete a row (record) in gridview (by clicking on delete link). The problem is that every time if the user adds a new record in gridview the new row has a wrong number. What I mean is: Table1 has two columns: ID and Category ID Category1 test12 test23 test3 -> delete this row Now insert a new row: ID Category1 test12 test24 test3 -> ID is 4, but it should be 3 Could anyone help me please? Thank you in advance! Best regardKlaus
Does anybody know the function or any other way in MS SQL Server 2000 or in MS Access or in MS FoxPro that I can get an increment record position in a view?
For example let’s say that I have a table with only one field named persons. The table has three records person1, person2 and person3. What is the way in MS SQL Server 2000 or in MS Access or in MS FoxPro of retrieving the records in a view with an extra field named for example recno which will indicate the record autoincrement number in the view as it is below?
recno persons 1person1 2person2 3person3
Please help me
I will be very grateful if you also reply your answers also and to my email