Пример демонстрирует вставку данных при помощи инструкции INSERT из программно созданного SQL-запроса.
Код
-- временная таблица, чтобы было на чем показывать пример
CREATE TABLE Orders (
OrderID int IDENTITY (1, 1) NOT NULL ,
CustomerID nchar (5) NULL ,
EmployeeID int NULL ,
OrderDate datetime NULL ,
RequiredDate datetime NULL ,
ShippedDate datetime NULL ,
ShipVia int NULL ,
Freight money NULL DEFAULT (0),
ShipName nvarchar (40) NULL ,
ShipAddress nvarchar (60) NULL ,
ShipCity nvarchar (15) NULL ,
ShipRegion nvarchar (15) NULL ,
ShipPostalCode nvarchar (10) NULL ,
ShipCountry nvarchar (15) NULL
)
GO
-- основная часть примера
DECLARE
@schemaname AS NVARCHAR(128),
@tablename AS NVARCHAR(128),
@colname AS NVARCHAR(128),
@sql AS NVARCHAR(805),
@cnt AS INT;
SET @schemaname = N'dbo';
SET @tablename = N'Orders';
SET @colname = N'CustomerID';
SET @sql = N'SELECT COUNT(DISTINCT '
+ QUOTENAME(@colname) + N') FROM '
+ QUOTENAME(@schemaname)
+ N'.'
+ QUOTENAME(@tablename)
+ N';';
-- создаем временную таблицу,
-- в нее будут вставлены данных из созданного программно запроса
CREATE TABLE #T(cnt INT);
-- собственно, сама вставка данных
INSERT INTO #T
EXEC(@sql);
-- вывод, чтобы было видно, что пример работает
SET @cnt = (SELECT cnt FROM #T);
SELECT @cnt;
GO
-- удаление временной таблицы
DROP TABLE #T;
GO
-- удаление таблицы созданной для примера
drop table orders;
GO
Анонимный пользователь сети Интернет. Автор великого множества кодов и программных решений. Никого никогда не видел в лицо этого пользователя, ходят слухи, что он многоликий, и может одновременно находиться в разных частях света.
Добавлять комментарии могут только зарегистрированные пользователи сайта.
Если у Вас уже есть учетная запись на Kbyte.Ru, пройдите процедуру авторизации.
Если Вы еще не зарегистрированы на Kbyte.Ru - зарегистрируйтесь.