3> CREATE TABLE Orders (
4> OrderID int IDENTITY (1, 1) NOT NULL ,
5> CustomerID nchar (5) NULL ,
6> EmployeeID int NULL ,
7> OrderDate datetime NULL ,
8> RequiredDate datetime NULL ,
9> ShippedDate datetime NULL ,
10> ShipVia int NULL ,
11> Freight money NULL DEFAULT (0),
12> ShipName nvarchar (40) NULL ,
13> ShipAddress nvarchar (60) NULL ,
14> ShipCity nvarchar (15) NULL ,
15> ShipRegion nvarchar (15) NULL ,
16> ShipPostalCode nvarchar (10) NULL ,
17> ShipCountry nvarchar (15) NULL
18> )
19> GO
1>
2>
3> DECLARE
4> @schemaname AS NVARCHAR(128),
5> @tablename AS NVARCHAR(128),
6> @colname AS NVARCHAR(128),
7> @sql AS NVARCHAR(825),
8> @cnt AS INT;
9>
10> SET @schemaname = N'dbo';
11> SET @tablename = N'Orders';
12> SET @colname = N'CustomerID';
13> SET @sql = N'INSERT INTO #T(cnt) SELECT COUNT(DISTINCT '
14> + QUOTENAME(@colname) + N') FROM '
15> + QUOTENAME(@schemaname)
16> + N'.'
17> + QUOTENAME(@tablename)
18> + N';';
19>
20> CREATE TABLE #T(cnt INT);
21> EXEC(@sql);
22> SET @cnt = (SELECT cnt FROM #T);
23> SELECT @cnt;
24> DROP TABLE #T;
25> GO
-----------
0
1>
2> drop table orders;
3> GO