我正在尋找拉表的一些列(Col1和2),並以JSON格式,並在每個節點寫入一些硬編碼的JSON,就像這樣。SQL Server表json
{ 「COL1」: 「XXXX」, 「COL2」: 「XXXX」, 「hardcodedString」: 「XXXX」, 「hardcodedString」: 「XXXX」, 「hardcodedString」: 「XXXX」, 「 hardcodedString「:」 XXXX」,‘hardcodedString’:‘XXXX’},
我發現下面的git的腳本,它會創建應產生JSON一個SP,但是當我按要求執行,我得到‘命令完成成功與’
任何想法,輸出是否或確實如果更好的方式來實現我的JSON?
create procedure [dbo].[GetJSON] (
@schema_name varchar(50),
@table_name varchar(50),
@registries_per_request smallint = null
)
as
begin
if ((select count(*) from information_schema.tables where table_schema = @schema_name and table_name = @table_name) > 0)
begin
declare @json varchar(max),
@line varchar(max),
@columns varchar(max),
@sql nvarchar(max),
@columnNavigator varchar(50),
@counter tinyint,
@size varchar(10)
if (@registries_per_request is null)
begin
set @size = ''
end
else
begin
set @size = 'top ' + convert(varchar, @registries_per_request)
end
set @columns = '{'
declare schemaCursor cursor for
select column_name
from information_schema.columns
where table_schema = @schema_name
and table_name = @table_name
open schemaCursor
fetch next from schemaCursor into @columnNavigator
select @counter = count(*)
from information_schema.columns
where table_schema = @schema_name
and table_name = @table_name
while @@fetch_status = 0
begin
set @columns = @columns + '''''' + @columnNavigator + ''''':'''''' + convert(varchar, ' + @columnNavigator + ') + '''''''
set @counter = @counter - 1
if (0 != @counter)
begin
set @columns = @columns + ','
end
fetch next from schemaCursor into @columnNavigator
end
set @columns = @columns + '}'
close schemaCursor
deallocate schemaCursor
set @json = '['
set @sql = 'select ' + @size + '''' + @columns + ''' as json into tmpJsonTable from [' + @schema_name + '].[' + @table_name + ']'
exec sp_sqlexec @sql
select @counter = count(*) from tmpJsonTable
declare tmpCur cursor for
select * from tmpJsonTable
open tmpCur
fetch next from tmpCur into @line
while @@fetch_status = 0
begin
set @counter = @counter - 1
set @json = @json + @line
if (0 != @counter)
begin
set @json = @json + ','
end
fetch next from tmpCur into @line
end
set @json = @json + ']'
close tmpCur
deallocate tmpCur
drop table tmpJsonTable
select @json as json
end
end
爲什麼你必須在SQL中執行此操作? – Slicedpan
沒有理由 - 簡化問題陳述是將SQL Server表格內容轉換爲問題 – Fearghal