Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zaktualizuj tabelę o pola losowe

Należy zmusić aparat bazy danych do oceny nowej wartości dla każdego wiersza. Możesz to zrobić, dodając klauzulę dummy where na zewnętrznej tabeli, np.:

DECLARE @city TABLE(ID INT IDENTITY(1, 1), City VARCHAR(100))

INSERT INTO @city VALUES
('Dallas'),
('New York'),
('Washington'),
('Las Vegas')


DECLARE @random TABLE(ID INT IDENTITY(1, 1), City VARCHAR(100))

INSERT INTO @random VALUES
('Manchester'),
('London'),
('Oxford'),
('Liverpool')


SELECT * FROM @city c
CROSS APPLY(SELECT TOP 1 * FROM @random r WHERE c.ID = c.ID ORDER BY NEWID()) ca

jeśli usuniesz WHERE c.ID = c.ID otrzymasz tę samą wartość dla wszystkich wierszy.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy wartości indeksu programu SQL Server Null w nieklastrowym indeksie nieunikatowym?

  2. Procedury składowane/schemat DB w kontroli źródła

  3. SQL Server Intellisense nie działa na *niektórych* serwerach

  4. Jak usunąć ograniczenie klucza obcego tylko wtedy, gdy istnieje na serwerze sql?

  5. CASE (zawiera) zamiast równego stwierdzenia