Skip to content

Commit 87bf25d

Browse files
author
pmasl
committed
Updated sample for UTF8
1 parent 225fef2 commit 87bf25d

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

samples/features/unicode/CheckStorageReq_CurrDB.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ SET @params = '@CurrBytesOut smallint OUTPUT, @UTF8BytesOut smallint OUTPUT'
3737
WHILE @cnt < @maxcnt
3838
BEGIN
3939
SELECT TOP 1 @OName = ObjectName, @CName = ColumnName FROM #tmpObjects WHERE isdone = 0
40-
SELECT @sqlcmd = 'SELECT @CurrBytesOut = MAX(DATALENGTH(' + @CName + ')), @UTF8BytesOut = MAX(DATALENGTH(CAST(' + @CName + ' AS VARCHAR(4000)) COLLATE Latin1_General_100_CI_AI_SC_UTF8)) FROM ' + @OName;
40+
SELECT @sqlcmd = 'SELECT @CurrBytesOut = MAX(DATALENGTH(' + @CName + ')), @UTF8BytesOut = MAX(DATALENGTH(CAST(' + @CName + ' AS VARCHAR(4000)) COLLATE Latin1_General_100_CI_AI_SC_UTF8)) FROM ' + @OName + ' WITH (NOLOCK)';
4141

4242
EXEC sp_executesql @sqlcmd, @params, @CurrBytesOut = @CurrBytes OUTPUT, @UTF8BytesOut = @UTF8Bytes OUTPUT
4343

samples/features/unicode/notebooks/CheckStorageReq_CurrDB.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
},
2626
{
2727
"cell_type": "code",
28-
"source": "SET NOCOUNT ON;\r\nGO\r\n\r\nUSE WideWorldImporters\r\nGO\r\n\r\nDROP TABLE IF EXISTS #tmpObjects;\r\nGO\r\n\r\nCREATE TABLE #tmpObjects (ObjectName sysname, \r\n\tColumnName sysname, \r\n\tColumnType sysname, \r\n\tDefinedTypeSize smallint, \r\n\tActualMaxBytes smallint,\r\n\tUTF8BytesNeeded smallint,\r\n\t[isdone] bit,\r\n CONSTRAINT PK_ObjName_ColName\r\n PRIMARY KEY NONCLUSTERED (ObjectName, ColumnName)\r\n\t\tWITH (IGNORE_DUP_KEY = ON)\r\n\t);\r\n\r\nINSERT INTO #tmpObjects\r\nSELECT QUOTENAME(SS.[name]) + '.' + QUOTENAME(STbl.[name]), QUOTENAME(SC.[name]), ST.[name], SC.max_length, NULL, NULL, 0\r\nFROM sys.columns AS SC\r\nINNER JOIN sys.types AS ST ON SC.user_type_id = ST.user_type_id\r\nINNER JOIN sys.tables AS STbl ON STbl.[object_id] = SC.[object_id]\r\nINNER JOIN sys.schemas AS SS ON STbl.[schema_id] = SS.[schema_id]\r\nWHERE STbl.[type] = 'U' \r\n\tAND STbl.is_ms_shipped = 0\r\n\t--AND STbl.temporal_type IN (0,1)\r\n\tAND ST.system_type_id IN (167, 175, 231, 239)\r\n\tAND ST.[name] <> 'sysname'\r\n\tAND SC.is_hidden = 0\r\n\tAND SC.max_length > 0;\r\n\r\nDECLARE @OName sysname, @CName sysname, @CurrBytes smallint, @UTF8Bytes smallint, @sqlcmd NVARCHAR(4000), @params NVARCHAR(60), @cnt int, @maxcnt int\r\n\r\nSELECT @maxcnt = COUNT(*) FROM #tmpObjects;\r\nSET @cnt = 0 \r\nSET @params = '@CurrBytesOut smallint OUTPUT, @UTF8BytesOut smallint OUTPUT'\r\n\r\nWHILE @cnt < @maxcnt\r\nBEGIN\r\n\tSELECT TOP 1 @OName = ObjectName, @CName = ColumnName FROM #tmpObjects WHERE isdone = 0\r\n\tSELECT @sqlcmd = 'SELECT @CurrBytesOut = MAX(DATALENGTH(' + @CName + ')), @UTF8BytesOut = MAX(DATALENGTH(CAST(' + @CName + ' AS VARCHAR(4000)) COLLATE Latin1_General_100_CI_AI_SC_UTF8)) FROM ' + @OName; \r\n\r\n\tEXEC sp_executesql @sqlcmd, @params, @CurrBytesOut = @CurrBytes OUTPUT, @UTF8BytesOut = @UTF8Bytes OUTPUT\r\n\r\n\tUPDATE #tmpObjects\r\n\tSET ActualMaxBytes = @CurrBytes, UTF8BytesNeeded = @UTF8Bytes, isdone = 1 \r\n\tWHERE ObjectName = @OName AND ColumnName = @CName\r\n\r\n\tSET @cnt = @cnt + 1\r\nEND;\r\n\r\nSELECT * FROM #tmpObjects;",
28+
"source": "SET NOCOUNT ON;\r\nGO\r\n\r\nUSE WideWorldImporters\r\nGO\r\n\r\nDROP TABLE IF EXISTS #tmpObjects;\r\nGO\r\n\r\nCREATE TABLE #tmpObjects (ObjectName sysname, \r\n\tColumnName sysname, \r\n\tColumnType sysname, \r\n\tDefinedTypeSize smallint, \r\n\tActualMaxBytes smallint,\r\n\tUTF8BytesNeeded smallint,\r\n\t[isdone] bit,\r\n CONSTRAINT PK_ObjName_ColName\r\n PRIMARY KEY NONCLUSTERED (ObjectName, ColumnName)\r\n\t\tWITH (IGNORE_DUP_KEY = ON)\r\n\t);\r\n\r\nINSERT INTO #tmpObjects\r\nSELECT QUOTENAME(SS.[name]) + '.' + QUOTENAME(STbl.[name]), QUOTENAME(SC.[name]), ST.[name], SC.max_length, NULL, NULL, 0\r\nFROM sys.columns AS SC\r\nINNER JOIN sys.types AS ST ON SC.user_type_id = ST.user_type_id\r\nINNER JOIN sys.tables AS STbl ON STbl.[object_id] = SC.[object_id]\r\nINNER JOIN sys.schemas AS SS ON STbl.[schema_id] = SS.[schema_id]\r\nWHERE STbl.[type] = 'U' \r\n\tAND STbl.is_ms_shipped = 0\r\n\t--AND STbl.temporal_type IN (0,1)\r\n\tAND ST.system_type_id IN (167, 175, 231, 239)\r\n\tAND ST.[name] <> 'sysname'\r\n\tAND SC.is_hidden = 0\r\n\tAND SC.max_length > 0;\r\n\r\nDECLARE @OName sysname, @CName sysname, @CurrBytes smallint, @UTF8Bytes smallint, @sqlcmd NVARCHAR(4000), @params NVARCHAR(60), @cnt int, @maxcnt int\r\n\r\nSELECT @maxcnt = COUNT(*) FROM #tmpObjects;\r\nSET @cnt = 0 \r\nSET @params = '@CurrBytesOut smallint OUTPUT, @UTF8BytesOut smallint OUTPUT'\r\n\r\nWHILE @cnt < @maxcnt\r\nBEGIN\r\n\tSELECT TOP 1 @OName = ObjectName, @CName = ColumnName FROM #tmpObjects WHERE isdone = 0\r\n\tSELECT @sqlcmd = 'SELECT @CurrBytesOut = MAX(DATALENGTH(' + @CName + ')), @UTF8BytesOut = MAX(DATALENGTH(CAST(' + @CName + ' AS VARCHAR(4000)) COLLATE Latin1_General_100_CI_AI_SC_UTF8)) FROM ' + @OName + ' WITH (NOLOCK)'; \r\n\r\n\tEXEC sp_executesql @sqlcmd, @params, @CurrBytesOut = @CurrBytes OUTPUT, @UTF8BytesOut = @UTF8Bytes OUTPUT\r\n\r\n\tUPDATE #tmpObjects\r\n\tSET ActualMaxBytes = @CurrBytes, UTF8BytesNeeded = @UTF8Bytes, isdone = 1 \r\n\tWHERE ObjectName = @OName AND ColumnName = @CName\r\n\r\n\tSET @cnt = @cnt + 1\r\nEND;\r\n\r\nSELECT * FROM #tmpObjects;",
2929
"metadata": {},
3030
"outputs": [
3131
{

0 commit comments

Comments
 (0)