Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Актуализиране на таблица с произволни полета

Трябва да принудите двигателя на базата данни да оценява нова стойност за всеки ред. Можете да направите това, като добавите фиктивна клауза where към външната таблица като:

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

ако премахнете WHERE c.ID = c.ID ще получите една и съща стойност за всички редове.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разрешенията за PSExec се изпълняват от SQL задание

  2. CTE рекурсия за получаване на йерархия на дървото

  3. Услуги за отчитане на SQL сървър:как да спрете изстрелването на отчет при отваряне

  4. Как да филтрирате редове с нулеви стойности в изявление за избор в SQL Server - SQL Server / TSQL урок, част 110

  5. Грешка при импортиране на файл от 5 гигабайта в таблицата