【发布时间】:2015-03-12 10:37:49
【问题描述】:
我想使用 TSQL 将 SQL 服务器数据导入 Excel。在 Excel 中,我可以完美地检索带有 SQL 代码的表。但是当我编写 TSQL 代码而不是 SQL 时,它给了我“没有什么可检索的”。
Excel 是否支持 TSQL 代码?如果是这样,我如何将数据从 SQL Server 导入到 Excel?
顺便说一句,我有这个示例代码。
use GOPLUS;
DECLARE @kayitNo INT;
DECLARE @CardRefOfItem INT;
DECLARE @CardRefOfPrice INT;
DECLARE @urunKodu VARCHAR(100);
DECLARE @urunAdi VARCHAR(100);
DECLARE @fiyat1 INT;
DECLARE @fiyat2 INT;
DECLARE @fiyat3 INT;
DECLARE @numb INT;
DECLARE @kayitSayisi INT = (SELECT COUNT(*) FROM LG_001_ITEMS);
DECLARE @sayac INT = 0;
CREATE TABLE #UrunListesis(
Sira INT NOT NULL PRIMARY KEY,
Ürün_Kodu VARCHAR(100),
Ürün_Adı VARCHAR(100),
Fiyat1 INT,
Fiyat2 INT,
Fiyat3 INT
)
set @kayitNo = (SELECT TOP 1 LOGICALREF FROM LG_001_ITEMS ORDER BY LOGICALREF ASC)
WHILE @sayac < @kayitSayisi
BEGIN
set @urunKodu = (SELECT LG_001_ITEMS.CODE FROM LG_001_ITEMS WHERE LG_001_ITEMS.LOGICALREF = @kayitNo)
set @urunAdi = (SELECT LG_001_ITEMS.NAME FROM LG_001_ITEMS WHERE LG_001_ITEMS.LOGICALREF = @kayitNo)
set @CardRefOfPrice = (SELECT TOP 1 LOGICALREF FROM LG_001_PRCLIST WHERE CARDREF = @kayitNo)
set @numb = (SELECT COUNT(*) FROM LG_001_PRCLIST WHERE LG_001_PRCLIST.CARDREF = @kayitNo)
if (@numb >=1)
begin
set @fiyat1 = (SELECT LG_001_PRCLIST.PRICE FROM LG_001_PRCLIST WHERE LG_001_PRCLIST.LOGICALREF = @CardRefOfPrice)
end
if (@numb >=2)
begin
set @fiyat2 = (SELECT LG_001_PRCLIST.PRICE FROM LG_001_PRCLIST WHERE LG_001_PRCLIST.LOGICALREF = @CardRefOfPrice+1)
end
if (@numb =3)
begin
set @fiyat3 = (SELECT LG_001_PRCLIST.PRICE FROM LG_001_PRCLIST WHERE LG_001_PRCLIST.LOGICALREF = @CardRefOfPrice+2)
end
INSERT INTO #UrunListesis VALUES(@kayitNo,@urunKodu,@urunAdi,ISNULL(@fiyat1,0),ISNULL(@fiyat2,0),ISNULL(@fiyat3,0));
set @kayitNo = @kayitNo+1;
set @sayac = @sayac + 1
set @fiyat1 = 0
set @fiyat2 = 0
set @fiyat3 = 0
END
SELECT * FROM #UrunListesis
很可能我只想将临时表 UrunListesis 返回到 Excel 就是这样。
【问题讨论】:
标签: sql-server excel tsql import