Romsip table is updating forty and over dating
More info : you aren't interested in specifying a time, you can also use the format 'DD/MM/YYYY', however I would stick to a Conversion method, and its relevant ISO format, as you really should avoid using default values.
I've tried declaring a temporary table and updating from that, but that gives me the error DECLARE @T TABLE ( [ID] INT, [X] INT, [Y] INT ) INSERT INTO @T SELECT [ID], [X], [Y] FROM [Redaction] AS R WHERE [ID] IN ( SELECT [Primary ID] FROM [Linked Redactions] ) UPDATE [Redaction] SET [X] = @T.[X], [Y] = @T.[Y] WHERE [Redaction].[ID] IN ( SELECT [ID] FROM @T ) UPDATE red SET [X] = red Primary.[X], [Y] = red Primary.[Y] FROM [Redaction] red INNER JOIN [Linked Redactions] red Lnk ON red.[ID] = red Lnk.There are, in fact, two separate sets of ISO codes, 2-letter and 3-letter, so you may not in reality be able to join these columns: ISO 3166-1 The join condition There is a difference in behavior to my version - your version will set it to NULL if it's not found, mine will not alter an existing value if it's not matched. Also the execution plan may differ depending upon the [email protected] It's probably not a problem - when you add the new column, I'm assuming it will be NULL and also a foreign key, so invalid entries wouldn't be allowed anyway.But it's hard to tell from what has been explicitly given in your question. However, if you still want to pass a Date Time as a string, then the CAST should not be necessary provided that a language agnostic format is used. Given a table created like : This is because 'YYYY-MM-DD' is not a language agnostic format (from SQL server's point of view) .The ISO 'YYYY-MM-DDThh:mm:ss' format is also language agnostic, and useful when you need to pass a non-zero time.